1. 程式人生 > >音視訊入門(iOS編譯ffmpeg的configure配置)

音視訊入門(iOS編譯ffmpeg的configure配置)

本篇文章接之前的x264編譯configure選項,寫一下ffmpeg的configure選項。

ffmpeg的arm64架構configure選項

./configure \
--disable-everything \   //首先關閉所有configure選項,保證編譯的時候不會需要引入很多多餘的程式碼模組
--enable-gpl \           //使用gpl協議,如果是公司產品要使用ffmpeg就要小心了
--enable-nonfree \
--target-os=darwin \        
--enable-shared \
--enable-avresample \    //使用libavresample模組
--enable-libx264 \       //使用x264庫
--enable-libfdk-aac \    
--enable-muxer=flv \     //支援封裝flv格式
--enable-demuxer=flv \   //支援解封裝flv格式
--enable-muxer=mp4 \
--enable-demuxer=mov \
--enable-encoder=libx264 \      //支援h264編碼
--enable-decoder=h264 \         //支援h264解碼
--enable-encoder=libfdk_aac \
--enable-decoder=libfdk_aac \
--enable-protocol=file \        //支援從本地檔案(ffmpeg把本地檔案當作了一種協議)
--enable-rdft \                 //這裡enable rdft庫以及fft庫,是因為學習ffplayer tutorial的時候編譯程式碼顯示缺少了這兩種庫,所以在這裡填上
--enable-fft \
--extra-cflags="-I../x264/output/arm64/include -I../fdk-aac-0.1.6/output/arm64/include/fdk-aac" \   //需要引入的x264庫以及fdk庫的標頭檔案所在的資料夾,這裡使用的是相對路徑
--extra-ldflags="-L../fdk-aac-0.1.6/output/fat/lib -L../x264/output/fat/lib"  \           //需要引入的x264庫以及fdk庫的實現檔案所在的資料夾
--enable-cross-compile \                                   
--cc="xcrun -sdk iphoneos clang -arch arm64" \
--arch="arm64" \
--prefix="./output/fat/arm64"

ffmpeg的x64架構configure選項

./configure \
--disable-everything \
--enable-gpl \
--enable-nonfree \
--target-os=darwin \
--enable-shared \
--enable-avresample \
--enable-libx264 \
--enable-libfdk-aac \
--enable-muxer=flv \
--enable-demuxer=flv \
--enable-muxer=mp4 \
--enable-demuxer=mov \
--enable-encoder=libx264 \
--enable-decoder=h264 \
--enable-encoder=libfdk_aac \
--enable-decoder=libfdk_aac \
--enable-protocol=file \
--enable-rdft \
--enable-fft \
--extra-cflags="-I../x264/output/arm64/include -I../fdk-aac-0.1.6/output/arm64/include/fdk-aac" \
--extra-ldflags="-L../fdk-aac-0.1.6/output/fat/lib -L../x264/output/fat/lib"  \
--enable-cross-compile \
--cc="xcrun -sdk iphonesimulator clang -arch x86_64" \
--arch="x86_64" \
--prefix="./output/fat/x86_64"

有可能在實際編譯的時候你又會被提示缺少了一些實現檔案,可以使用configure的help功能,檢視configure具體有哪一些選項可以對應到缺少的實現檔案。這一步目前沒找到很好的解決方法,我是自己一個個實驗或著google出來的。