【ffmpeg】编译及使用外部的编解码器
有時候,ffmpeg默認帶的編解碼器不能滿足需要,尤其是編碼器,往往需要額外補充。
下面以mp3的一個編碼器為例,進行說明:
編譯ffmpeg,想將libmp3lame編入其中,將視頻中的音頻導出,封裝為mp3文件。
進行編譯配置時,對執(zhí)行configure時,加入了參數(shù)--enable-libmp3lame;
但是編譯出來的ffmpeg,通過ffmpeg --encoders查找,就是沒有mp3編碼器。
進行了多次重新編譯以及下載新代碼進行編譯,還是一樣的問題。
后來發(fā)現(xiàn),當執(zhí)行ffmpeg時,出現(xiàn)如下警告:
WARNING: library configuration mismatch
并且各個庫的configuration不是執(zhí)行configure設(shè)置的值
想到發(fā)生現(xiàn)象的原因:
1、在配置configure時,將prefix設(shè)置為源代碼的根目錄下;
2、通過編譯,將ffmep等可執(zhí)行文件放入到了prefix指定的目錄;而生成的動態(tài)庫在prefix目錄下的lib文件夾下;
3、直接運行prefix下的ffmpeg,找到依賴的動態(tài)庫為機器指定的環(huán)境變量某個目錄下的動態(tài)庫(不是這次編譯出來的);
總結(jié):
當機器中存在多套ffmpeg的動態(tài)庫是,FFmpeg的執(zhí)行一定要明確依賴的動態(tài)庫路徑。
為了保險,將ffmpeg執(zhí)行程序放入到想使用的動態(tài)庫的路徑下執(zhí)行。
總結(jié)
以上是生活随笔為你收集整理的【ffmpeg】编译及使用外部的编解码器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序使用微软雅黑作为默认字体在xp下的问
- 下一篇: 脑图软件及其应用