編譯FFmpeg動態(tài)庫

之前有客戶提出不想使用FFmpeg靜態(tài)庫,想要使用FFmpeg動態(tài)庫,說什么怕有侵權的風險!我也是醉了,大部分公司都是用的FFmpeg靜態(tài)庫,它居然要求我們公司提供動態(tài)庫,沒辦法,誰叫他是客戶。后來在網(wǎng)上找了好多資料都沒有關于編譯FFmpeg動態(tài)庫的,只有靜態(tài)庫的,靜態(tài)庫相關資料一抓一大把,但一個動態(tài)庫資料都沒有,所以只能自己嘗試改些腳本來嘗試編譯,皇天不負有心人,既然讓我編譯過了,不過還是有很多問題,但最后都解決了,這里以ffmpeg3.2.4版本為例,可以自行去下載各版本ffmpeg源碼下載

當我們編譯靜態(tài)庫時會生成scratch這個文件

然后分別到目錄scratch/arm64、armv7 下執(zhí)行腳本生成ffmpeg arm64的動態(tài)庫和armv7的動態(tài)庫,再將兩個動態(tài)庫合并成一個同時支持arm64和armv7的動態(tài)庫,使用? lipo -create 命令,大工告成!

執(zhí)行的腳本,不帶aarch64目錄:

xcrun -sdk iphoneos clang -arch armv7 -mios-version-min=8.0? -O3 -DNDEBUG -fembed-bitcode -fms-extensions -stdlib=libc++? -isysroot? /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk? -dynamiclib -Wl,-headerpad_max_install_names -compatibility_version 1.0.0 ./libavcodec/*.o? ./libavdevice/*.o? ./libavfilter/*.o? ./libavformat/*.o ./libavutil/*.o? ./libswresample/*.o? ./libswscale/*.o -shared -fPIC-framework Foundation-framework CoreFoundation -framework CoreVideo? -frameworkAudioToolbox? -frameworkVideoToolbox -framework CoreMedia -framework AVFoundation -o FFmpeg -lbz2 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/usr/lib/libiconv.tbd -lz -liconv -install_name @rpath/FFmpeg.framework/FFmpeg

需要注意的是/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk是xcode安裝目錄,而且需要指定安裝路徑? -install_name @rpath/FFmpeg.framework/FFmpeg? 不然項目運行時下載不了該動態(tài)庫

帶aarch64目錄:

xcrun -sdk iphoneos clang -arch arm64 -mios-version-min=8.0? -O3 -DNDEBUG -fembed-bitcode -fms-extensions -stdlib=libc++? -isysroot? /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.1.sdk? -dynamiclib -Wl,-headerpad_max_install_names -compatibility_version 1.0.0 ./libavcodec/*.o? ./libavdevice/*.o? ./libavfilter/*.o? ./libavformat/*.o ./libavutil/*.o? ./libavutil/aarch64/*.o ./libswresample/*.o ./libswresample/aarch64/*.o ./libswscale/*.o? ./libswscale/aarch64/*.o ./libavcodec/neon/*.o ./libavcodec/aarch64/*.o? -shared -fPIC-framework Foundation-framework CoreFoundation -framework CoreVideo? -frameworkAudioToolbox? -frameworkVideoToolbox -framework CoreMedia -framework AVFoundation -o FFmpeg -lbz2 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.1.sdk/usr/lib/libiconv.tbd -lz -liconv -install_name @rpath/FFmpeg.framework/FFmpeg

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容