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命令


    

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/118435.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Promise是什么?Promise怎么使用?回调地狱[通俗易懂]

    Promise是什么?Promise怎么使用?回调地狱[通俗易懂]1、Promise的概念Promise是ES6提供的原生的类(构造函数),用来传递异步操作的消息。它代表了某个未来才会知道结果的事件(通常是一个异步操作)2、Promise的两个特点:1)、对象的状态不受外界影响。Promise有三种状态:Pending(进行中)、Resolved(已完成,又称Fulfilled)和Rejected(已失败)。2)、一旦状态改变,就不会再变状态改变,只有两种可能:从Pending变为Resolved和从Pending变为Reje

    2022年6月4日
    37
  • 在线代理(Web ProxyServer)完全详解

    在线代理(Web ProxyServer)完全详解在线代理(WebProxy)原理可以简单的概述为:用户(A)-在线代理服务器(B)-目标网站(C),即:A向B发送浏览请求-B执行请求发送给C-C收到请求,回应。什么是在线代理  在线代理英文全称是(WebProxyServer),又称在线代理。代理服务器其功能就是代理网络用户去取得网络信息。形象的说:它是网络信息的中转站。在一般情况下,我们使用网络浏览器直接去连接其他

    2022年6月21日
    203
  • JavaScript数学运算(取整,取余和取模)

    来源|https://www.fly63.com这篇文章主要介绍js取整、取余和取模的实现方法和它们之间的区别,以及Math对象的常用方法函数介绍,有需要的朋友可以参考下。取整在项目开…

    2022年4月9日
    209
  • 单片机毕业生设计题目_单片机毕业设计作品

    单片机毕业生设计题目_单片机毕业设计作品可追溯农产品电商管理系统的设计与实现 农产品用户商城系统设计与实现 基于OpenGL的全局光照算法的设计与实现 分布式存储系统分析与设计 基于机器学习的数据库融合技术研究 基于知识图谱的对话系统设计与实现 具有日志的虚拟WEB攻防系统设计与实现 企业生产自动排产系统设计 能效管理系统的设计 视频会议终端软件设计 空间演化博弈平台的设计和研究 基于APS数据集的科研合作网络的结构演化研究 Internet拓扑网络的K-核演化特性研究 基于空间网络的城市轨道交

    2022年9月27日
    0
  • python 列表转字符串[通俗易懂]

    python 列表转字符串[通俗易懂]python中list转字符串命令:”.join(list)其中,引号中是字符之间的分割符,如“,”,“;”,“\t”等等如:list=[1,2,3,4,5]”.join(list)结果即为:12345′,’.join(list)结果即为:1,2,3,4,5

    2022年6月13日
    24
  • 算法导论在线阅读_英雄联盟韧性计算

    算法导论在线阅读_英雄联盟韧性计算都整理好了,看谁学得快!

    2022年9月1日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号