FFmpeg 核心提供基礎框架,具體編解碼器、封裝格式、協議通過**第三方外部庫**以模塊形式掛載。通過 configure 參數控制啟用/禁用。
# 查看所有外部庫選項
./configure --help | grep -- '--enable-lib'
# 僅啟用 H.264 + AAC + MP4 封裝(最小化構建)
./configure \
--disable-everything \
--enable-gpl --enable-nonfree \
--enable-libx264 --enable-libfdk_aac \
--enable-encoder=libx264,libfdk_aac \
--enable-muxer=mp4 \
--enable-demuxer=mov,mp4 \
--enable-protocol=file,http,rtmp
| 錯誤提示 | 原因 | 解決 |
|---|---|---|
| ERROR: libx264 not found | 未安裝 x264 開發包 | Ubuntu: apt install libx264-dev;或指定 --extra-cflags/-ldflags |
| ERROR: libfdk_aac not found | 未安裝 fdk-aac | 需手動編譯安裝 fdk-aac 並加入 pkg-config 路徑 |
| License incompatibility | GPL vs nonfree 衝突 | 同時加 --enable-gpl --enable-nonfree |
# 禁用所有編碼器/解碼器/封裝/協議,再按需啟用
./configure \
--disable-encoders --disable-decoders \
--disable-muxers --disable-demuxers \
--disable-parsers --disable-bsfs --disable-protocols \
--enable-encoder=libx264,libfdk_aac \
--enable-decoder=h264,aac \
--enable-muxer=mp4 \
--enable-demuxer=mov,mp4 \
--enable-protocol=file,http,rtmp,rtp
編譯後執行 ffmpeg -codecs 驗證僅剩目標編解碼器,二進制體積可減少 60%+。
ffmpeg -buildconf
# 輸出包含 configuration: --enable-libx264 --enable-libfdk_aac ... 等信息
掌握 configure 裁剪與外部庫依賴管理,可構建針對特定業務(如直播推流、轉碼服務)的**極致精簡 FFmpeg**,降低部署體積與攻擊面。