官方的當前gstreamer版本還不支持x265編解碼,因此要添加x265,需要自己編譯。本文基於gstreamer1.3.3版進行編譯安裝。需要首先自己編譯gstreamer1.3.3,以及相應的base、good、bad、ugly插件
一、安裝編譯x265編碼器
1. 下載源碼。
開源x265編碼器的官方網站是 https://bitbucket.org/multicoreware/x265/wiki/Home
源碼下載地址: hg clone https://bitbucket.org/multicoreware/x265
當然你要先安裝hg源碼管理工具,類似於git,debian 7中自帶該工具,名字叫Mercurial
2. 安裝編譯環境:
sudo apt-get install cmake cmake-curses-gui build-essential
3. debian 7的彙編軟件yasm版本是1.1,x265的彙編編譯需要1.2版本,因此需要自己編譯yasm1.2
下載地址:http://yasm.tortall.net/releases/Release1.2.0.html
編譯後,配置環境變量的路徑,讓yasm1.2優先執行。
4. 編譯x265
進入build/linux目錄執行:
./make-Makefiles.bash
會出來一個字符的配置界面,根據自己的需要修改參數。
然後make並安裝。
這個時候,x265命令應該可以執行了,可以試着找個y4m原始視頻文件編碼一下。
5. 編譯安裝gstreamer x265插件
下載地址:https://bugzilla.gnome.org/show_bug.cgi?id=726376
bug的附件是patch文件,作者未指定基於那個gstreamer版本編寫,但是位置是在gstreamer的bad插件。要讓這個patch用於你自己的gstreamer版本,需要自己去比對代碼,按照你的版本對這個patch進行修改。我基於gstreamer1.3.3版本進行修改,附件中包含我的修改文件。.patch文件怎麼用,請參考相關資料。patch後,有幾個小bug需要修改。我的patch文件
patch後,bad插件中就包含x265enc插件了。位於ext/x265目錄。
重新編譯整個bad插件,並安裝。
使用gst-inspect-1.0 | grep x265應該可以看到x265enc插件了。插件使用方法和x264enc使用方法基本一致。當然現在功能還是很初步的,但是已經可以完成基本的x265編碼了。
二、安裝x265解碼器
1. 安裝libde265
下載地址:https://github.com/strukturag/libde265
make 並安裝
2. 安裝gstreamer-libde265
下載地址:https://github.com/strukturag/gstreamer-libde265.git
依賴 libbz2
使用autogen.sh配置
make 安裝。
將安裝位置設置到GST_PLUGIN_PATH環境變量中去。
三、測試與使用
請參考我的另一篇博客常見gstreamer pipeline命令