Gstreamer中添加x265编解码器
官方的当前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命令
Gstreamer中添加x265编解码器相关推荐
- 在ffmpeg中添加编解码器
本文基于ffmpeg-2.2,添加基于QSV(Intel Media SDK / Quick Sync Video)的系列编解码器qsvavc_enc.qsvavc_dec.qsvmpeg2_dec. ...
- Gstreamer中的视频处理与硬件加速
点击上方"LiveVideoStack"关注我们 ▲扫描图中二维码或点击阅读原文▲了解音视频技术大会更多信息 // 编者按:Gstreamer作为一个比较流行的开源多媒体框架,其 ...
- 如何在Android Framework中添加自定义硬件编解码器?
原文:How to add custom hardware codec to Android Framework? http://gopinaths.gitlab.io/post/custom_har ...
- Gstreamer中一些gst-launch常用命令
Gstreamer中一些gst-launch常用命令 用Linux系统中使用gstreamer架构做对媒体开发时,gst-inspect和gst-launch是两个非常使用的小工具,gst-inspe ...
- linux gst-launch 播放视频旋转,【视频开发】Gstreamer中一些gst-launch常用命令
GStreamer是著名的开源多媒体框架,功能强大,其命令行程序 gst-launch 可以实现很多常规测试.播放等,作为系统调试等是非常方便的. 1.摄像头测试 gst-launch v4l2src ...
- Rockchip rv1126平台在gstreamer1中添加OpenCv实现视频流负片的效果
研究了一天,发现最终代码只有几行,所以简单记录一下. 到写 这篇记录为止,我没有发现rv1126的gstreamer1补丁中,RK 没有为视频流提供负片效果的patch, 在RGA的API中, 确实有 ...
- Linux下ffmpeg添加 x265
Linux下ffmpeg添加 x265 在linux 上安装ffmpeg 支持h265编码器按照以下步骤: 1.安装 Mercurial : 2.安装CMake 2.8.8 or later: 3.Y ...
- Gstreamer中pad的链接
Gstreamer中的pad根据输入输出方向,有src和sink两种.根据pad创建的时机,有always pad.sometimes pad.request pad,这样不同的pad,链接方式就不同 ...
- Android TextVeiw 在java代码中添加空格的方法
可以使用uniconde 的编码设置空格,有三种方法的 \u00A0,\u0020,\u3000 代码设置下 textView.setText("北\u00A0京"); textV ...
最新文章
- (二)企业部分之lnmp环境的搭建:mysql源码安装
- 【UML 建模】UML建模语言入门 -- 静态图详解 类图 对象图 包图 静态图建模实战
- linux查看文件只会用vi?除了vi,这几个文件查看的命令,让你爱不释手!
- 如何保住我们的头发?初级程序员的碎碎念
- 发一个sgs0.9.9的例子
- jira 插件介绍地址
- 集成方法(随机森林)
- JDK、JRE、JVM的区别与联系
- 四则运算 python
- Android 插桩入门
- python2与python3实现读取网页刷访问量
- 非线性发展方程定解问题
- K8s问题【flannel一直重启问题,CrashLoopBackOff】
- java SE教程04
- 基于SNMP数据采集模块的设计和实现2
- “我去图书馆”公众号代码抢座的实现
- J2EE基础之map集合框架
- CAS 密码盐值加密
- PyQt5 QtChart-曲线图
- SiO2/KH550修饰四氧化三铁纳米磁性颗粒|PDA包裹四氧化三铁磁性纳米颗粒(科研级)