音視頻技術開發--FFmpeg+libx264配置安裝


之前幾篇完成了V4L2的學習,通過V4L2我們能夠采集到了YUYV的視頻數據,不過可以看到直接傳輸YUV格式的數據,數量量是巨大的,網絡延時嚴重。所以我們需要對YUV數據進行壓縮編碼。

目前主流的視頻編碼有h.264/h.265/vp9/AVS/AV1等等,這邊我們以最常見最經典的h.264格式來壓縮視頻。基於學習的目的,我們通過x265開源編碼庫來壓縮,可以直接通過調用x264庫來實現,也可以通過FFmpeg來間接調用x264,為了后續FFmpeg的學習,我們直接使用FFmpeg來調用。所以,首先需要先配置FFmpeg、x264的環境。

一、編譯x264

源碼地址:git clone https://code.videolan.org/videolan/x264.git

配置編譯環境:./configure --enable-static --disable-asm --prefix=/home/hank/Desktop/share/x264/out   

                        ./configure --enable-static --disable-asm --prefix=/home/hank/Desktop/share/x264/out --disable-opencl (最新版本需要去使能opencl,見FFmpeg編譯) 

其中 --enable-static表示需要生成靜態庫, 如果想生成靜態庫,改為--enable-shared; --prefix指定安裝目錄,make install以后會吧頭文件/庫等產物放到該路徑。

 make;make install;

等待編譯完成后,可以看到安裝路徑下已經有產物,產物為x264可執行程序,include對外API頭文件,lib路徑中的靜態庫等。

 看下x264版本信息:

 

二、編譯FFmpeg

① 源碼地址:git clone git@github.com:FFmpeg/FFmpeg.git

可以看到FFmpeg庫已經比較龐大了

② 配置編譯環境:如下圖所示,配置FFmpeg, --enable-static表示生產靜態庫;--enable-libx264表示使能外部libx264 --enable-gpl開啟libx264必須使能gpl協議。--extra-cflags和 --extra-ldflags指定libx264對應產物路徑。

./configure  --prefix=/home/hank/Desktop/share/ffmpeg/out --extra-cflags=/home/hank/Desktop/share/x264/out/include --extra-ldflags=/home/hank/Desktop/share/x264/out/lib

 運行./build.sh以后有如下報錯:

 google了下,目前最新的libx264需要配置--disable-opencl,以使FFmpeg能找到庫,所以返回第一步重新配置編譯libx264,然后運./build.sh,配置成功。

 配置完成FFmpeg,可以看到已經成功找到了libx264庫:

 make;make install

③ 編譯產物

可看到make install以后在指定的路徑下面生產了頭文件/靜態庫/可執行程序等產物。

查看FFmpeg版本:

 

 

以上完成了FFmpeg+libx264的環境配置,接下去就可以使用FFmpeg/libx264的庫和API來壓縮編碼V4L2采集的YUV圖片了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM