FFmpeg學習之一(FFmpeg原始碼編譯)

孔雨露發表於2020-04-06

Mac下 FFmpeg原始碼編譯

安裝

可以通過如下三種方式安裝ffmpeg

  1. 終端安裝 (藉助homebrew): 此方式ffmpeg會保持自動更新.

  2. 下載ffmpeg靜態庫: 即不用手動編譯,我們只需要直接執行下載得到的二進位制檔案即可.靜態生成的一個缺點是必須手動執行更新。此外, 它們可能不包含所需的所有編碼器或篩選器。

  3. 手動編譯: 下載原始碼, 然後使用所需的標誌(可以指定開啟需要的功能)執行./configure, 最後使用make或make install。但是, 必須手動設定配置選項, 並且您需要自己安裝第三方庫。

如何選擇

如果僅僅是想使用命令列的ffmepg, 建議用第一種方式或第二種方式.

如果需要在Mac OS專案中使用ffmpeg, 以及修改一些ffmpeg中的原始碼以適應專案,使用第三種方式.

1. 使用終端安裝FFmpeg

Homebrew是命令列中的軟體包安裝器.絕大多數知名軟體包或外掛都可以用它來安裝. 如果你還沒有安裝,直接用下面的命令可以安裝

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
複製程式碼
  • 安裝FFmpeg
  1. 通用版本安裝,只需命令列輸入:brew install ffmpeg

  2. 最新版本安裝, 並提供最少的配置 (和庫依賴關係) 選項,命令列輸入:brew install ffmpeg --HEAD

  3. 擴充套件安裝,可以自定義安裝公式,如下,可根據自己需求自行擴充套件,可能會失敗,因為需要一些依賴第三方庫:


brew install ffmpeg --with-fdk-aac --with-tools --with-ffplay --with-freetype --with-libass --with-libvorbis --with-opus --with-libvpx --with-x265

複製程式碼
  • 安裝第三方庫中的ffmpeg

v 2.0版本之後,Homebrew不再為其核心公式提供選項。想要使用其他庫 (包括非免費庫) 構建 ffmpeg 的使用者需要使用來自第三方儲存庫的ffmpeg。這些庫不是由Homebrew維護的。


brew tap varenc/ffmpeg

brew install varenc/ffmpeg/ffmpeg

複製程式碼
  • 更新
  1. 通用版本更新,只需終端輸入:brew update && brew upgrade ffmpeg

  2. 如最新版本,終端輸入:brew upgrade --fetch-HEAD ffmpeg

  3. 如果你已經使用brew install ffmpeg安裝了ffmpeg,可以使用 brew uninstall ffmpeg 解除安裝

2. 手動編譯

2.1 編譯環境 - Xcode

手動編譯Mac上必須安裝Xcode,然後安裝命令列工具

  • 介面安裝: Preferences > Downloads > Components

  • 命令列安裝: xcode-select --install

2.2 安裝依賴庫

  1. 自動安裝依賴庫,只需命令列輸入:

$ brew install automake fdk-aac git lame libass libtool libvorbis libvpx \

opus sdl shtool texi2html theora wget x264 x265 xvid nasm

複製程式碼
  1. 手動安裝依賴庫

FFmpeg的編譯依賴於Pkg-config,而它又依賴於GLib,而GLib又依賴於gettext,所以必須先安裝並編譯相關依賴。

  • Pkg-config & GLib & gettext
  1. gettext: 在庫中編輯檔案stpncpy.c,並且在#ifndef weak_alias之前新增#undef stpncpy.

LIBFFI_CFLAGS=-I/usr/include/ffi LIBFFI_LIBS=-lffi ./configure;make && sudo make install

複製程式碼
  1. glib: Linux平臺下最常用的C語言函式庫,它具有很好的可移植性和實用性。

  2. Pkg-config : 維護了一個儲存各個程式碼庫的路徑的資料庫。當然這個”資料庫” 非常的簡單,其實就是一個特殊的目錄,這個目錄中有一系列的以 “.pc” 為字尾的檔案。


GLIB_CFLAGS="-I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include" GLIB_LIBS="-lglib-2.0 -lgio-2.0" ./configure --with-pc-path="/usr/X11/lib/pkgconfig:/usr/X11/share/pkgconfig:/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"

複製程式碼

Mac OS X Lion擁有自己的stpncpy函式它跟gettext重複產生衝突。

  • Nasm

Nasm是x264所需的彙編程式。最新版本可在nasm.us上獲得。

  • 其他附加的庫
  1. x264: --enable-gpl --enable-libx264

  2. fdk-aac: --enable-libfdk-aac

  3. libvpx: --enable-libvpx

  4. libvorbis: --enable-libvorbis

  5. libopus:

  6. LAME:--enable-libmp3lame

  7. libass:--enable-libass

2.3 安裝Freetype

macOS已經安裝了freetype(較老的版本可能需要在安裝期間選擇X11),但不是在典型的位置

在freetype的./configure檔案中加入如下指令:


CFLAGS=`freetype-config --cflags`

LDFLAGS=`freetype-config --libs` PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig:/usr/lib/pkgconfig:/opt/X11/lib/pkgconfig

複製程式碼

2.4 編譯

做完以上所有依賴操作後,就可以連結下載FFmpeg原始碼。可以通過Generic compilation guide查閱詳細的編譯步驟.執行./configure --help,可以瞭解可用的選項。

  • 下載

$ git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg

$ cd ffmpeg

複製程式碼
  • 編譯
  1. 完整編譯:

$ ./configure  --prefix=/usr/local --enable-gpl --enable-nonfree --enable-libass \

--enable-libfdk-aac --enable-libfreetype --enable-libmp3lame \

--enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libopus --enable-libxvid \

--samples=fate-suite/

make

複製程式碼
  1. 最簡編譯:

$ ./configure  && make

複製程式碼
  • 安裝

sudo make install

複製程式碼

2.5 手動編譯步驟

  • 配置指令碼 (編輯指令碼檔案./configure)

  • 編譯 (make)

  • 安裝 (make install)

1>. 配置: 允許建立編譯步驟所需的必要檔案,並通過源包通常提供的配置指令碼完成。在配置期間,可以定義安裝字首和已啟用的元件。

2>. 編譯: 編譯通常包括在配置步驟完成後執行make。在此階段,將生成所需的庫和二進位制檔案。

3> 安裝: 安裝將在配置步驟中指定的路徑中安裝二進位制檔案和庫。請注意,由於您可以使用編譯路徑中編譯的二進位制檔案,因此不需要執行此步驟。


./configure

make

make install

複製程式碼

注意: 編譯源目錄中的檔案,並將庫安裝在/ usr / local中。第三步可能需要超級使用者許可權(因此可能需要由sudo make install替換),因為普通使用者無法修改/ usr / local。

2.6 安裝路徑配置

配置步驟通常允許使用者指定所謂的安裝字首,並且通常通過配置選項configure --prefix = PREFIX指定,其中PREFIX通常預設為/ usr / local。字首指定安裝所有元件的公共目錄。

安裝中通常涉及以下目錄:

  • PREFIX/bin: 包含生成的二進位制檔案 (e.g. ffmpeg, ffplay, ffprobe etc. in the case of FFmpeg)

  • PREFIX/include: 包含生成庫的標頭檔案 (e.g. libavutil/avstring.h, libavcodec/avcodec.h, libavformat/avformat.h etc. in case of FFmpeg)

  • PREFIX/lib:包含生成的庫 (e.g. libavutil, libavcodec, libavformat etc. in the case of FFmpeg)

  • PREFIX/share: 包含各種與系統無關的元件;特別是文件檔案和示例

一般建議使用預設路徑,但如果數量使用像/ opt / PROJECT /這樣的字首,專案將安裝在專用目錄中,要從系統中刪除,只需刪除/ opt / PREFIX路徑即可。但是此類安裝將需要編輯所有環境變數以指向自定義路徑。

2.7 環境變數配置

環境中定義的幾個變數會影響您的軟體包安裝。特別是,根據您的安裝字首,您可能需要更新其中一些變數,以確保系統工具可以找到已安裝的元件。可以通過命令env顯示環境變數列表。

以下是受影響變數的列表:

  • PATH: 定義變數簡化路徑,系統查詢二進位制檔案的路徑。例如,如果在/ usr / local /中安裝軟體包,則應更新PATH,使其包含/ usr / local / bin。這可以通過命令export PATH = / usr / local / bin:$ PATH來完成。

  • LD_LIBRARY_PATH: 系統查詢庫的路徑。例如,如果在/ usr / local /中安裝軟體包,則應更新LD_LIBRARY_PATH,使其包含/ usr / local / lib。這可以通過命令export LD_LIBRARY_PATH = / usr / local / lib:$ LD_LIBRARY_PATH來完成。有時不推薦使用此變數,而是使用ldconfig。

  • CFLAGS: 包含C編譯器使用的標誌,通常包括預處理指令,如-IPREFIX / include或編譯標誌。自定義CFLAGS通常由源包構建系統作為源包編譯器標誌的字首。或者,許多構建系統允許指定配置選項-extra-cflags。

  • LDFLAGS: 這些是連結器使用的指令,通常包括連結指令,如查詢自定義路徑中安裝的庫所需的-LPREFIX / lib。自定義LDFLAGS通常由源包構建系統作為源包連結器標誌的字首。或者,許多構建系統允許指定configure選項-extra-ldflags。

  • PKG_CONFIG_PATH: pkg-config使用的路徑,用於檢測許多編譯系統使用的pkg-config檔案,以檢測特定庫使用的自定義CFLAGS / LDFLAGS。

如果您在非標準路徑中安裝了軟體包,則需要更新這些環境庫,以便系統工具能夠檢測軟體包元件。在為依賴於其他已安裝的庫/標頭/工具的包執行配置指令碼時,一定要這樣做。

3. FFmpeg相關引數簡介

  • 常用庫

| 庫名 | 用途 |

| :--: | :--: |

ffmpeg | 一個命令列工具,用來對視訊檔案轉換格式,也支援對電視卡即時編碼

ffserver | 一個HTTP多媒體即時廣播流伺服器,支援時光平移

ffplay|一個簡單的播放器,基於SDL與FFmpeg庫

libavcodec | 包含全部FFmpeg音訊/視訊編解碼庫

libavformat| 包含demuxers和muxer庫

libavutil | 包含一些工具庫

libpostproc | 對於視訊做前處理的庫

libavutil | 包含一些工具庫

libswscale | libswscale

  • 主要引數

| 引數名 | 意義 |

| :--: | :--: |

-i | 設定輸入檔名。

-f | 設定輸出格式。

-y | 若輸出檔案已存在時則覆蓋檔案。

-fs | 超過指定的檔案大小時則結束轉換。

-ss | 從指定時間開始轉換。

-t | 從-ss時間開始轉換(如-ss 00:00:01.00 -t 00:00:10.00即從00:00:01.00開始到00:00:11.00)。

-title | 設定標題。

-timestamp | 設定時間戳。

-vsync | 增減Frame使影音同步。

| 視訊引數名 | 意義 |

| :--: | :--: |

b:v | 設定視訊流量,預設為200Kbit/秒。(單位請引用下方注意事項)

r| 設定幀率值,預設為25。

s | 設定畫面的寬與高。

aspect | 設定畫面的比例。

vn | 不處理視訊,於僅針對聲音做處理時使用。

vcodec( -c:v )| 設定視訊視訊編解碼器,未設定時則使用與輸入檔案相同之編解碼器。

| 聲音引數名 | 意義 |

| :--: | :--: |

b:a | 設定每Channel(最近的SVN版為所有Channel的總合)的流量。(單位請引用下方注意事項)

ar| 設定取樣率。

ac| 設定聲音的Channel數。

acodec ( -c:a ) | 設定聲音編解碼器,未設定時與視訊相同,使用與輸入檔案相同之編解碼器。

an | 不處理聲音,於僅針對視訊做處理時使用。

vol | 設定音量大小,256為標準音量。(要設定成兩倍音量時則輸入512,依此類推。)

  1. 檢視h265的資料的基本資訊

ffmpeg -i /Users/tomxiang/Desktop/h265/test_tomxiang.h265

複製程式碼
  1. 用libx265轉mp4.

ffmpeg -i /Users/tomxiang/Desktop/test_tomxiang.h265  -c:v libx265 /Users/tomxiang/xxtest/test265.mp4

複製程式碼
  1. ffplay逐幀播放視訊與顯示視訊幀序號

macOS下使用ffplay,按下s鍵可單幀播放視訊,配合一個顯示文字的視訊濾鏡即可顯示當前畫面的幀序號,命令示例如下所示:


ffplay -vf "drawtext=fontfile=/Library/Fonts/Arial.ttf:text=%{n}:box=1:x=(w-tw)/2:y=h-(2*lh)" sample.mp4

複製程式碼

window下 FFmpeg原始碼編譯

1. 編譯環境配置

準備工作,先把下面四個軟體下載下來。

1)MinGW-MSYS Bundle

2) SDL 注意:在此環境下2.0.3版本的原始碼編譯會有問題,不推薦。

3)yasm

4)FFmpeg

1.1 安裝WinGW編譯環境

  1. MinGW(Minimalist GNU for Windows):輔助編譯Windows程式的工具鏈。通過minGW installation manager來安裝。

  2. MSYS(Minimal SYStem):是一個小型的GNU環境,包括基本的bash,make等等。它也可以通過minGW installation manager進行安裝。

  3. 開啟minGW installation manager,按照下圖進行勾選:

FFmpeg學習之一(FFmpeg原始碼編譯)

點選Installation->Apply Changes 進行安裝基本包。

1.2 安裝yasm

  1. yasm是彙編編譯器,因為ffmpeg中為了提高效率用到了彙編指令,比如MMX和SSE。因此需要安裝這個工具。

  2. 如果沒有安裝yasm或nasm,在編譯的時候會遇到這樣的錯誤“nasm/yasm not found or too old.”

  3. 下載 yasm ,並將可執行行檔案重新命名為yasm.exe複製到%MINGW_PATH%/bin目錄下。其中MINGW_PATH是MINGW的安裝目錄。

  4. 把yasm原始碼包解壓到F:\Work\ffmpeg-2.4\yasm1.2.0目錄。進入yasm目錄,分別執行命令:


./configure --prefix=/usr/local/yasm

make

make install

複製程式碼
  1. 通過下面命令匯入yasm環境變數

export PATH="$PATH:/usr/local/yasm/bin"

複製程式碼

1.3 安裝pkg-config

pkg-config是一個輔助的配置、連結工具,可以方便的支援gcc自動配置。

建議參考:pkg-config for mingw 安裝及配置

注意配置好環境變數,PKG_CONFIG_PATH(pkg-config預設的庫依賴項查詢目錄)。

也可以把pkg-config.exe放到%MINGW_PATH%/bin下。

1.4 下載安裝SDL

由於編譯ffplay需要SDL,所以需要先安裝SDL。

  1. SDL安裝方式1:
  • 把SDL原始碼解壓縮到F:\Work\ffmpeg-2.4\SDL-1.2.15目錄。進入SDL目錄,分別執行

./configure --prefix=/usr/local/SDL

make

make install

複製程式碼

完成SDL的安裝。

  • SDL編譯完成之後,生成的bin檔案、include檔案、lib檔案存放在C:\msys\1.0\local\SDL目錄下。

  • 通過下面命令匯入SDL環境變數.


export PATH="$PATH:/usr/local/SDL/bin:/usr/local/SDL/include:/usr/local/SDL/lib"

複製程式碼

如果沒有設定環境變數,在執行ffmpeg configure時,SDL support項顯示為no.(注:mingw預設根目錄對應與windows下的C:\msys\1.0\目錄,可以通過echo $PATH檢視當前的系統路徑)

  1. SDL安裝方式2:
  • 下載SDL2,解壓之後,把include/sdl、lib、bin目錄下的檔案拷貝到%MINGW_PAH%/msys/1.0的對應目錄下。

  • 把lib/pkg-config/sdl2.pcprefix=/opt/local/x86_64-w64-mingw32的prefix的路徑修改為%MINGW_PAH%/msys/1.0,還有幾處prefix指定為/opt/local/x86_64-w64-mingw32的地方也需要修改一下,可以全域性搜尋替換一下(沒有找到更好的方法)。

說明:

當編譯引數加上--enable-sdl時如果沒有找到匹配的sdl會報錯提示,如果不加這個引數,沒有報錯提示。

遇到問題可以檢視config.log中測試sdl部分的日誌,檢查是否存在sdl版本或者指定的庫的位置有問題。我就遇到了prefix指定的sdl位置不對,導致指定的編譯的標頭檔案位置不對導致找不到標頭檔案的問題。

1.5

2. 編譯FFmpeg

  1. 把ffmpeg原始碼(ffmpeg-2.4.tar.bz2)解壓到F:\Work\ffmpeg-2.4\ffmpeg-2.4,進入ffmpeg程式碼目錄, 分別執行下面命令:

# 進入FFmpeg原始碼目錄

cd FFmpeg

# 配置編譯引數

./configure --prefix=../buildout --disable-static --enable-shared --enable-gpl --enable-version3 --enable-sdl

# 編譯

make

make install

複製程式碼
  1. 完成之後檢查FFmpeg編譯目錄下的config.h檔案,找到HAVE_SDL、CONFIG_SDL巨集,如果都是1,表示SDL配置成功。

  2. 可能存在的問題:

  • 執行make時遇到下面的錯誤ffbuild/common.mak:174 missing separator. Stop

解決方法:

執行git config --global core.autocrlf false

然後執行下面的命令刪除ffmpeg程式碼,並重新獲取一下即可

  • 執行ffplay.exe的時候提示找不到SDL2.dll

解決方法:

把下載的sdl中的bin目錄下的SDL2.dll拷貝到ffplay.exe所在的目錄。

linux下 FFmpeg原始碼編譯

IOS下 FFmpeg原始碼編譯

IOS 編碼簡介

iOS上編解碼分為兩種,硬編解碼和軟編解碼,可以參考下表:

| 型別 | 工具 | 硬體支援 | 後臺 | 思路 | 備註 |

| :--: | :--: | :--: | :--: | :--: | :--: |

硬編解碼| VideoToolBox | 非CPU或者專用處理器 | 編碼(iOS>=10.0),解碼不支援 | VideoVTToolBox | - |

|硬編解碼| AVAssetWriter| 非CPU或者專用處理器 | 支援編碼| 需要將視訊寫入本地檔案,然後通過實時監聽檔案內容的改變,讀取檔案並處理封包 | - |

| 軟編解碼 | FFmpeg | CPU| 支援| - | - |

IOS 編譯FFmpeg

  • IOS 可以通過如下兩種方式安裝ffmpeg:
  1. 下載iOS版本ffmpeg靜態庫: 即不用手動編譯,我們只需要下載得到標頭檔案及.a庫檔案.

  2. 手動編譯: 下載原始碼, 可以在更改一些flag或原始碼後再編譯指令碼,較為靈活.

如果僅僅是想簡單直接使用ffmeg可以下載一個穩定版本的靜態庫, 建議用第一種方式.

如果需要在iOS專案中自定義使用ffmpeg, 以及修改一些ffmpeg中的原始碼以適應專案,使用第二種方式.

百度雲 連結:pan.baidu.com/s/1xeHNgHHG… 密碼:5400

1. 下載 gas-preprocessor

下載 gas-preprocessor

此檔案是編譯FFmpeg必備的指令碼檔案,使用如下命令將其拷貝進bin下


cp -f /xxx/gas-preprocessor.pl /usr/local/bin/

複製程式碼

2. 安裝 yasm

下載yasm

yasm是一個完全重寫的NASM彙編並且支援x86和AMD64指令集.


brew install yasm

複製程式碼

3. 下載 x264-iOS編譯指令碼及原始碼

下載 x264-iOS編譯指令碼原始碼

  1. 下載x264編譯指令碼解壓後如下

FFmpeg學習之一(FFmpeg原始碼編譯)

  1. 然後下載最新版原始碼解壓後如下

FFmpeg學習之一(FFmpeg原始碼編譯)

  1. 將原始碼資料夾改名為x264並放至編譯指令碼資料夾(x264-ios-master)下

修改後如圖:

FFmpeg學習之一(FFmpeg原始碼編譯)

因為編譯指令碼中指定檔案目錄為x264,所以需要改名,也可以改編譯指令碼

最好手動強制設定下GCC位置,否則可能會報錯,然後執行命令:

cd 到你的x264-ios-master資料夾下,然後執行命令:


sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer/

./build-x264.sh

複製程式碼
  1. 執行完成之後可以看到生成了x264-iOS資料夾

image

  1. 可能存在的編譯報錯:
  • No working C compiler found : 新版mac直接編譯會報錯,原因是gcc一些必要工具找不到.可能是xcode位置換了的原因,因為我們主要使用真機除錯,所以我們在編譯指令碼中只保留arm64即可,如下修改後,可以直接編譯通過. 不過像模擬器這樣的設定是無法使用x264的,因為我們相當於僅編譯了真機所需的庫.

ARCHS="arm64 x86_64 i386 armv7 armv7s"

改為如下

ARCHS="arm64"

複製程式碼

4. 下載FFmpeg-iOS編譯指令碼及原始碼

下載FFmpeg-iOS編譯指令碼原始碼

注意: 在這裡可以僅下載FFmpeg-iOS編譯指令碼,不用下載原始碼,執行指令碼會自動下載原始碼,如果不想每次自動下載,可以手動下載原始碼,稍微修改下FFmpeg編譯指令碼即可.這裡不做過多說明.

  1. 修改指令碼(build-ffmpeg.sh檔案)內容

FFmpeg學習之一(FFmpeg原始碼編譯)

  1. x264編譯好的資料夾必須在當前目錄並且命名為fat-x264,所以我們第3步編譯後生成的x264-iOS資料夾改名成fat-264,放在FFmpeg-iOS-build-script這個資料夾中。目錄結構如下:

FFmpeg學習之一(FFmpeg原始碼編譯)

  1. 修改如下內容:

CFLAGS="$CFLAGS -mios-version-min=$DEPLOYMENT_TARGET -fembed-bitcode"

修改為

CFLAGS="$CFLAGS -mios-version-min=$DEPLOYMENT_TARGET"

複製程式碼

在build-ffmpeg.sh中找到104行,修改為CFLAGS="$CFLAGS -mios-version-min=$DEPLOYMENT_TARGET"如下圖:

FFmpeg學習之一(FFmpeg原始碼編譯)

FFmpeg學習之一(FFmpeg原始碼編譯)

  1. 因為我們在上一步中僅僅編譯arm64的x264,所以這裡我們也僅僅編譯arm64的FFmpeg.稍微修改指令碼檔案即可.

ARCHS="arm64 armv7 x86_64 i386"

修改為

ARCHS="arm64"

複製程式碼

在build-ffmpeg.sh中找到37行:ARCHS="arm64 armv7 x86_64 i386"修改為:ARCHS="arm64"。如下圖所示:

FFmpeg學習之一(FFmpeg原始碼編譯)

  1. 如果要使用avutil.h相關功能,需要更改指令碼

FFmpeg框架中的一個結構體命名為"AVMediaType"與蘋果自帶框架產生衝突,所以,我們必須修改編譯指令碼,使用"FFmpegAVMediaType"帶替換"AVMediaType".這裡需要在指令碼檔案中新增如下命令列,即將AVMediaType替換為FFmpegAVMediaType. 注意: $SOURCE為ffmpeg的根目錄.


grep -rl AVMediaType ./$SOURCE | xargs sed -i .bak s@AVMediaType@FFmpegAVMediaType@g

複製程式碼
  1. 編譯指令碼檔案

./build-ffmpeg.sh

複製程式碼

FFmpeg學習之一(FFmpeg原始碼編譯)

執行指令碼後,會先下載原始碼:

FFmpeg學習之一(FFmpeg原始碼編譯)

5. Xcode編譯

  1. Xcode新建iOS專案

新建一個iOS工程,然後將ViewController.m重新命名為 ViewController.mm ,因為 FFmpeg中涉及C,C++混編,所以需要做此操作.

  1. 將FFmpeg編譯好的標頭檔案與庫拉進專案中,並在主控制器測試程式碼,此時會有一大堆錯誤丟擲,下面逐個解決.

  2. 新增依賴庫

FFmpeg學習之一(FFmpeg原始碼編譯)

  1. 在Build Setting中禁止Bitcode

FFmpeg學習之一(FFmpeg原始碼編譯)

  1. 在Build Setting中設定標頭檔案與庫的位置

這裡特別要注意,因為在大多數專案中以及FFmpeg自身原始碼中,都是以以下格式來匯入的標頭檔案

FFmpeg學習之一(FFmpeg原始碼編譯)

Android 下 FFmpeg原始碼編譯

相關文章