FFmpeg本身支持一些音視頻編碼格式、文件封裝格式與流媒體傳輸協(xié)議,但是支持的數(shù)量仍然有限,F(xiàn)Fmpeg所做的只是提供一套基礎(chǔ)的框架,所有的編碼格式、文件封裝格式與流媒體協(xié)議均可以做為FFmpeg的一個(gè)模塊掛載在FFmpeg框架中。
支持的第三方外部庫,可以通過FFmpeg源碼的configure命令查看FFmpeg所支持的音視頻編碼格式、文件封裝格式與流媒體協(xié)議。對于FFmpeg不支持的格式,可以通過 configure --help 查看所需要的第三方外部庫,然后通過增加對應(yīng)的編譯參數(shù)選項(xiàng)進(jìn)行支持。如下圖所示:支持的比較多,截圖只是一部分
image.png
定制支持格式
如果需要自己配置FFmpeg支持一些格式,比如H264視頻和AAC音頻編碼,可以調(diào)整配置如下:
./configure --enable-libx264 --enable-libfaac --enable-gpl --enable-nonfree
注意:
enable后面的庫名要根據(jù)FFmpeg版本來,每個(gè)版本的名字不一樣,最好通過configure --help確認(rèn)下,名字不一致會(huì)報(bào)錯(cuò)。
如果你需要支持的庫未安裝是會(huì)進(jìn)行錯(cuò)誤提示:如下圖
image.png
注意
從2016年初開始,F(xiàn)Fmpeg自身的AAC編碼器質(zhì)量逐步好轉(zhuǎn),至2016年年底,libfaac已經(jīng)從FFmpeg源代碼中剔除。
關(guān)閉相應(yīng)的模塊
因?yàn)镕Fmpeg支持的編碼格式、文件封裝格式、流媒體協(xié)議比較多,因此編譯出來的FFmpeg體積比較大,因此裁剪一些操作,一樣可以通過configure --help查看,如下圖:
image.png
./configure --disable-everything 此命令關(guān)閉所有的模塊
FFmpeg的編碼器支持
可以通過./configure --list-encoders參數(shù)查看,如下圖:
上圖不完整,只有部分,我們可以看出FFmpeg支持的編碼器比較全面。包括AAC、H264、H265、MPEG4、PCM、FLV1等等
FFmpeg的解碼器支持
可以通過./configure --list-decoders參數(shù)查看,如下圖:
image.png
FFmpeg所支持的解碼器模塊decoders支持了MPEG4、H264、H265、MP3等
FFmpeg的封裝支持
可以通過./configure --list-muxers參數(shù)查看,如下圖:
image.png
FFmpeg支持生成裸流文件,如H264-5、AAC、PCM,也支持一些常規(guī)格式如MP3、FLV、M3U8等等
FFmpeg的解封裝支持
可以通過./configure --list-demuxers參數(shù)查看,如下圖:
image.png
FFmpeg的通信協(xié)議支持
可以通過./configure --list-protocols參數(shù)查看,如下圖:
image.png







