首页 > 代码库 > Gstreamer中添加x265编解码器

Gstreamer中添加x265编解码器

     官方的当前gstreamer版本还不支持x265编解码,因此要添加x265,需要自己编译。本文基于gstreamer1.3.3版进行编译安装。需要首先自己编译gstreamer1.3.3,以及相应的basegoodbadugly插件

一、安装编译x265编码器

1.     下载源码。

         开源x265编码器的官方网站是 https://bitbucket.org/multicoreware/x265/wiki/Home

         源码下载地址: hg clone https://bitbucket.org/multicoreware/x265

         当然你要先安装hg源码管理工具,类似于gitdebian 7中自带该工具,名字叫Mercurial

2.     安装编译环境:

          sudo apt-get install cmake cmake-curses-gui build-essential

3.      debian 7的汇编软件yasm版本是1.1x265的汇编编译需要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版本编写,但是位置是在gstreamerbad插件。要让这个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命令