ffmpeg/libav 定製模塊

    使用ffmpeg或者libav進行開發時,大部分狀況下功能須要比較單一,好比是作播放器時只須要解複用和解碼模塊,甚至是隻須要一種音頻或者視頻的解碼器,或者須要使用ffmpeg進行指定格式的編碼、轉碼等,這時若是不對ffmpeg進行定製,而直接從官網上進行下載的話,可能須要幾十M的硬盤空間,爲了有利於產品的瘦身,須要編譯出符合自身須要的ffmpeg。   windows

    這裏我只須要h.26四、aac兩種種編解碼器,因此使用--enable-decoder=h264 --enable-decoder=aac進行激活,而其它的則所有disbale,這樣我本身編譯出的ffmpeg動態庫就很小了,post

其實經過configure參數,還能夠編譯出更小的動態庫,不過目前的這種大小已經夠咱們使用了。性能

目前windows使用msys編譯,最精簡的編譯命令爲:編碼

./configure --enable-nonfree --enable-avcodec --enable-avformat --enable-swscale --enable-avutil --enable-shared --disable-static --enable-gpl
--enable-version3 --disable-doc --disable-ffplay --disable-ffprobe --disable-ffserver --disable-network --disable-avfilter --enable-memalign-hack
--disable-everything --disable-stripping
--enable-decoder=h264 --enable-decoder=libfdk_aac --enable-encoder=libx264 --enable-encoder=libfdk_aac --enable-libx264 --enable-libfdk-aac
--disable-debug --enable-pthreads --disable-filters --disable-bzlib --disable-iconv --disable-avdevice --disable-postproc --enable-avresample
--disable-pthreads --disable-os2threads --disable-network --disable-dct --disable-dwt --disable-error-resilience --disable-lsp --disable-lzo
--disable-mdct --disable-rdft --disable-fft --enable-small
--disable-safe-bitstream-reader --extra-cflags='-IE:/MinGW/msys/1.0/local/include' --extra-ldflags='-LE:/MinGW/msys/1.0/local/lib -static-libgcc'debug

 

注:--enable-small可能會影響性能(configure --help),建議移動端下不要加上此參數!code

The --enable-memalign-hack option is necessary for FFmpeg to compile on Windows.orm

--extra-ldflags=-static-libgcc視頻

其中--extra-ldflags中的 -static-libgcc配置去除libgcc_s_dw2-1.dll的依賴server

相關文章
相關標籤/搜索