使用FFmpeg命令拼接多個mp3格式的音頻文件時報錯拋出異常,使用命令格式如下:
ffmpeg -i 1.mp3 -i 2.mp3 -filter_complex '[0:0] [1:0] concat=n=2:v=0:a=1 [a]' -map [a] out3.mp3
異常錯誤提示信息:
Automatic encoder selection failed for output stream #0:0. Default encoder for format mp3 (codec mp3) is probably disabled. Please choose an encoder manually.
使用Google搜索后發(fā)現(xiàn)問題原因在于只有mp3的解碼庫瘟滨,沒有mp3編碼庫導致的,需要添加libmp3lame第三方庫赡译。
libmp3lame第三方庫安裝方法:
- 下載 libmp3lame源碼壓縮包并解壓
- 打開命令行窗口并cd進入libmp3lame根目錄,執(zhí)行以下命令:
./configure
make
sudo make install
PS:在執(zhí)行make命令時Mac系統(tǒng)可能會拋出異常:"ld: symbol(s) not found for architecture x86_64"
論壇上提供的解決辦法是:將libmp3lame目錄下的libmp3lame.sym文件中的lame_init_old這項刪去即可浆西。
- libmp3lame庫編譯安裝成功后開始編譯安裝FFmpeg。
- 在安裝FFmpeg之前需要先將本機上已安裝的FFmpeg卸載干凈侧甫,下載FFmpeg源碼后進入根目錄灾部,首先需要配置第三方庫:
./configure --enable-shared --enable-libmp3lame --disable-yasm --prefix=/usr/local/ffmpeg
- 配置完成后康铭,執(zhí)行編譯安裝命令與libmp3lame庫命令一樣:
make
sudo make install
- 安裝完成后,將FFmpeg的bin目錄添加到.bash_profile(FFmpeg安裝后的目錄是在配置configure時設置的"/usr/local/ffmpeg")
執(zhí)行完以上命令后赌髓,基本上就可以解決上述問題了从藤。