最近在研究ffmpeg的編譯,之前使用的ubuntu,需要安裝虛擬機器,非常麻煩,所以後來改研究在windows平台編譯。
一開始遇到很多挫折,參考了網上很多的帖子,但要麼不全要麼內容已過期,經過我的反覆試驗或研究,最終搞定了。在此記錄一下,也希望能對編譯ffmpeg的朋友們有所幫助。
./configure --enable-static --disable-shared --enable-memalign-hack --arch=x86 --target-os=mingw32 --pkg-config=pkg-config --enable-runtime-cpudetect --disable-debug --enable-pthreads下面介紹各種第三方庫的編譯。為了方便編譯,所有庫均先解壓到[mingw]/msys/1.0/home/[username]根目錄,然後在mingw shell中cd命令定位到庫資料夾下。make
make install
x264
編譯安裝:
./configure --enable-win32thread
make
make install
cp -iv x264.h x264_config.h /mingw/include
cp -iv libx264.a /mingw/lib
cp -iv x264.pc /mingw/lib/pkgconfig
ffmpeg編譯引數:--enable-gpl --enable-libx264
lame 3.99.5
編譯安裝:
./configure --enable-export=full --enable-static --disable-shared --disable-frontend
make
make install
ffmpeg編譯引數:--enable-lib***lame
librtmp 2.3
librtmp依賴於zlib和openssl,所以要先編譯兩個庫,見下面:
zlib 1.2.7
make -f win32/makefile.gcc
cp -iv zlib1.dll /mingw/bin
cp -iv zconf.h zlib.h /mingw/include
cp -iv libz.a /mingw/lib
cp win32/makefile.gcc makefile.gcc
ffmpeg編譯引數:--enable-zlib
openssl 1.0.1
編譯完成後,把當前目錄的win32libs子資料夾下的include和lib分別拷貝到mingw32,以供後面librtmp使用
./configure -des -dprefix=$home/localperlffmpeg編譯引數:--enable-nonfree --enable libopensslmake
make test
make install
librtmp的編譯命令如下:
make sys=mingw
make sys=mingw install
注意:編譯ffmpeg時會提示「error: librtmp not found」錯誤,主要是因為一些library沒鏈結好,不知道是否為ffmpeg的bug。解決辦法是在configure檔案中「enabled librtmp」一行最後要新增「 -lwinmm -lwsock32 -lgdi32」
ffmpeg編譯引數:--enable-librtmp
xvidcore 1.3.2
編譯安裝:
cd xvidcore/build/generic
./configure --prefix=/mingw
make
make install
cp -iv \=build/xvidcore.dll.a /mingw/lib/libxvidcore.dll.a
ffmpeg編譯引數:--enable-libxvid
libgsm 1.0.13-3
編譯安裝:
make
mkdir /mingw/include/gsm
cp inc/gsm.h /mingw/include/gsm
cp lib/libgsm.a /mingw/lib
ffmpeg編譯引數:--enable-libgsm
供libvorbis和libtheora用
解壓,編譯安裝:
./configure –prefix=/olibs –disable-shared
make
make install
libvorbis 1.3.3
編譯安裝:
./configure
make
make install
ffmpeg編譯引數:--enable-libvorbis
libtheora 1.1.1
編譯安裝:
./configure
make
make install
ffmpeg編譯引數:--enable-libtheora
libspeex 1.2rc1
./configure
make
make install
ffmpeg編譯引數:--enable-libspeex
加入以上第三方庫以後,在ffmpeg中就可以下面的引數進行編譯:
./configure --enable-static --disable-shared --enable-memalign-hack --arch=x86 --target-os=mingw32 --pkg-config=pkg-config --enable-runtime-cpudetect --disable-debug --enable-pthreads --enable-gpl --enable-bzlib --enable-libx264 --enable-libgsm --enable-lib***lame --enable-libtheora --enable-libvorbis --enable-libxvid --enable-zlib--enable-openssl --enable-librtmp --enable-nonfree --enable-libspeex
make
make install
ffmpeg 新增自己的第三方庫
最近搞推流產品,想把自己寫的sdk以第三庫的形式 加到ffmpeg裡面進行除錯 比如我自己 編好的靜態庫 名字為libhzksdk.a 將該靜態庫copy到 usr local lib 在編譯ffmpeg前 配置 configure disable yasm enable librtmp extra...
MAYA 編譯安裝第三方庫
獲取maya對應版本的devikit包 獲取maya對應版本的vs 我這是maya2018版 編譯庫 管理員執行 編譯原始碼 cmd命令 原始碼目錄 c program files autodesk maya2018 bin mayapy.exe setup.py build ext i c pro...
PyThon第三方庫
本文 自 戀花蝶的部落格 今天公司停電,沒上班。跑上來更新個部落格,跟大家分享一下我常用的幾個第三方 python 庫。python 語言之所以能夠如此流行,除了本身內建許多程式庫來保障快速開發之外,目不睱接的第三方庫也是一大主因。結合我目前的工作 網遊開發 我常用的幾個第三方庫如下 wxpytho...