最簡單的視頻編碼器:編譯(libx264,libx265,libvpx)

=====================================================
html

最簡單的視頻編碼器系列文章列表:git

最簡單的視頻編碼器:編譯

最簡單的視頻編碼器:基於libx264(編碼YUV爲H.264)
github

最簡單的視頻編碼器:基於libx265(編碼YUV爲H.265)
web

最簡單的視頻編碼器:libvpx(編碼YUV爲VP8)
sql

=====================================================
ide

最近研究了一下幾種常見的視頻編碼器:x264,x265,vpx。本文簡單記錄一下它們的編譯方法。工具

x264,x265,vpx這三個開源的視頻編碼器能夠說是當今「最火」的視頻編碼器。x264如今佔據着H.264視頻編碼器的半壁江山;x265則是目前實現H.265標準最好的開源視頻編碼器,而且在將來可能接替x264;而vpx則是Google推出的開源視頻編碼器,它提出的VP9編碼標準的性能也不錯。在記錄完這篇文章後,計劃分別針對x264,x265,vpx寫三篇文章記錄它們的使用方法。性能

 

X264 



網站:http://www.videolan.org/developers/x264.html網站

源代碼獲取地址:ui

git clone git://git.videolan.org/x264.git
 
注意編譯前須要安裝yasm。
 

Windows下最簡單編譯步驟(MinGW)

1.下載安裝MinGW,運行後切換至源代碼目錄

2.輸入 "./configure"
3.輸入"make"
4.輸入"make install"安裝(可選)
 

Linux下最簡單編譯步驟:

1.切換至源代碼目錄

2.輸入 "./configure"
3.輸入"make"

4.輸入"make install"安裝(可選)


編譯後生成:

x264.exe:能夠直接使用的編碼H.264命令行程序

Libx264.a:能夠用於程序開發的編碼H.264的類庫


Windows下編譯得到lib類庫步驟(生成libx264.lib)
1.       生成「*.def」文件。輸入「./configure」命令的時候,將「./configure」後面加上參數,改成:
./configure --enable-shared --extra-ldflags=-Wl,--output-def=libx264.def
這樣能夠生成「libx264.dll」,「libx264.def」文件。
2.       使用VC自帶的lib生成工具「LIB」,生成「libx264.lib」文件。使用「Visual Studio command prompt」,切換至x264源代碼目錄,輸入如下命令:
LIB /DEF:libx264.def
便可生成libx264.lib用於在VC下開發。

X265 


網站2:https://bitbucket.org/multicoreware/x265

源代碼獲取地址:
hg clone http://hg.videolan.org/x265
 
注意編譯前須要安裝:
(1)yasm。
(2)CMake。
 
Windows下最簡單編譯步驟(VC2010)
1.使用CMake生成x265.sln 文件。具體是在其代碼根目錄的「build」文件夾中,找到想要生成的「.sln」的版本。

以本機爲例,打開「vc10-x86」,運行其中的「make-solutions.bat」,便可生成VC2010的32位的解決方案文件。中間會彈出一個CMake的配置對話框,如圖所示。能夠直接先單擊「Configure」,而後單擊「Generate」便可。


2. 用VC打開生成的x265.sln,便可編譯程序。能夠右鍵解決方案,選擇「生成解決方案」批量編譯其中全部的工程。



編譯後生成:

x265.exe:能夠直接使用的編碼H.265的命令行程序

libx265.dll,libx265.lib:能夠用於程序開發的編碼H.265的類庫(lib和dll分開)

x265-static.lib::能夠用於程序開發的編碼H.265的類庫(單獨一個lib)

 

VPX


網站:http://www.webmproject.org/

源代碼獲取地址:

git clone https://chromium.googlesource.com/webm/libvpx

上述地址有可能訪問不了,能夠使用下面的鏡像地址:

git clone https://github.com/webmproject/libvpx


注意編譯前須要安裝yasm。
 

Windows下最簡單編譯步驟(MinGW)

1.下載安裝MinGW,運行後切換至源代碼目錄
2.輸入 "./configure"
3.輸入"make"
 
Linux下最簡單編譯步驟
1.切換至源代碼目錄
2.輸入 "./configure"
3.輸入"make"

 

編譯後生成:
vpxdec.exe:能夠直接使用的解碼VP8,VP9命令行程序
vpxenc.exe:能夠直接使用的編碼VP8,VP9命令行程序
libvpx.a:能夠用於程序開發的編碼VP8,VP9的類庫


Windows下編譯得到各個項目VS2010解決方案的步驟

1.       configure的時候設置「—target」爲「x86-win32-vs10」

./configure --target=x86-win32-vs10

2.       用VC打開生成的vpx.sln,便可用VS瀏覽整個解決方案。能夠右鍵解決方案,選擇「生成解決方案」批量編譯其中全部的工程。