ffmpeg第三方庫編譯記錄

2021-09-22 21:54:07 字數 3334 閱讀 7484

最近在研究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

make

make install

下面介紹各種第三方庫的編譯。為了方便編譯,所有庫均先解壓到[mingw]/msys/1.0/home/[username]根目錄,然後在mingw shell中cd命令定位到庫資料夾下。

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/localperl

make

make test

make install

ffmpeg編譯引數:--enable-nonfree --enable libopenssl

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...