开源编码器gstreamill的使用
来源:互联网 发布:终端服务的端口号 编辑:程序博客网 时间:2024/06/12 17:30
简介
gstreamill是基于gstreamer(1.0)的开源编码器,可以通过http的post方法向gstreamill提交job,让gstreamill完成实时编码、转码、录制等工作。其中实时编码类型的job已经支持,其它类型的job尚未支持。job是json格式的描述文件,用于描述“job”的技术细节。本文的目的是为了让读者了解和使用gstreamill。
gstreamill的特性
与通常的编码器相比,最大的特点是可以通过管理接口对gstreamill发送job让它完成编码工作,这样可以比较容易实现编码集群,进而实现实时源的高可用方案。
安装
首先从https://github.com/zhangping/gstreamill下载gstreamill的源码,目前gstreamill只在ubuntu13.10下进行过测试。要编译安装gstreamill,需要先安装如下软件包:
运行 gstreamill -h命令可以看到gstreamill命令行的相关参数
不加任何参数直接运行gstreamill就启动了gstreamill:
启动一个job
以下模式的输出接口均采用vlc进行了验证,注意,这里的job name是job文件中name的值
http
要编写job文件需要对gstreamer有必要的理解,请参照源码examples目录下的示例文件。
gstreamill是基于gstreamer(1.0)的开源编码器,可以通过http的post方法向gstreamill提交job,让gstreamill完成实时编码、转码、录制等工作。其中实时编码类型的job已经支持,其它类型的job尚未支持。job是json格式的描述文件,用于描述“job”的技术细节。本文的目的是为了让读者了解和使用gstreamill。
gstreamill的特性
- 基于gstreamer,可以利用gstreamer已有的plugin或者编写新的plugin实现对各种编码、封转及协议的支持。
- 支持多码率(由job描述文件决定码率个数),支持GOP对齐。
- 支持hls、http渐进下载以及udp等输出。
- 通过RESTful的接口进行管理,便于集成到运营商的系统中。
- 采用json格式的描述文件来描述要完成的工作 - job。
- 具体的编码、转码等在子进程中实现,支持故障重新启动。
- 通过gstreamer plugin支持丰富的输入源,比如DecklinkSDI、v4l2类型的采集卡、UDP/RTP等。
应用
与通常的编码器相比,最大的特点是可以通过管理接口对gstreamill发送job让它完成编码工作,这样可以比较容易实现编码集群,进而实现实时源的高可用方案。
安装
首先从https://github.com/zhangping/gstreamill下载gstreamill的源码,目前gstreamill只在ubuntu13.10下进行过测试。要编译安装gstreamill,需要先安装如下软件包:
- gnome-common
- autoconf
- automake
- libtool
- gstreamer-devel
- gstreamer-plugins-base-devel
使用
./configure (--help) make make install
运行 gstreamill -h命令可以看到gstreamill命令行的相关参数
不加任何参数直接运行gstreamill就启动了gstreamill:
gstreamill停止gstreamill:
gstreamill -s通过管理端口指令gstreamill执行job,默认管理端口是20118,可以在启动的时候指定管理端口,这里使用的是curl工具通过httppost向gstreamill发指令的,在源码的examples目录下有job的事例,建议从test.job入手:
curl -H"Content-Type: application/json" --data @examples/test.jobhttp://localhost:20118/start在前台调试一个job:
gstreamill -jjob_descript_file播放输出可以采用vlc等播放器,对于examples/test.job,支持http渐进播放和m3u8播放,url为,注意http输出的默认端口是20119,可以在启动gstreamill的时候通过命令行参数指定:
http://localhost:20119/live/test/encoder/0管理接口
http://localhost:20119/live/test/playlist.m3u8
启动一个job
curl -H"Content-Type: application/json" --data @examples/test.jobhttp://localhost:20118/start停止一个job
curlhttp://localhost:20118/stop/job_name查询gstreamill状态
curlhttp://localhost:20118/stat/gstreamill curlhttp://localhost:20118/stat/gstreamill/livejob/test输出接口
以下模式的输出接口均采用vlc进行了验证,注意,这里的job name是job文件中name的值
http
http://localhost:20119/live/jobname/encoder/encoder_indexhls
http://localhost:20119/live/jobname/playlist.m3u8或者
http://localhost:20119/live/jobname/encoder/encoder_index/playlist.m3u8udp
udp://@ip:portJOB文件编写
要编写job文件需要对gstreamer有必要的理解,请参照源码examples目录下的示例文件。
我的更多文章:
- (2014-01-01 19:03:03)
- (2011-03-14 18:03:15)
0 0
- 开源编码器gstreamill的使用
- 编写gstreamill的job文件
- 主流使用的AAC编码器
- 提取VP6的编码器独立使用
- x264编码器的一些使用经验
- x264编码器的一些使用经验
- Skype---语音编码器开源
- metasploit使用msf编码器
- Arduino使用旋转编码器
- 使用音频引擎MITA创建自己的编码器的源代码
- H.264开源编码器评测
- 光电编码器在wince下的使用【C#】
- 经典的开源编码器X264 X265是否真的无法超越?
- 经典的开源编码器X264/X265是否真的无法超越?
- speex-1.2beta2开源音频编码器win32下编译的一点心得
- speex-1.2beta2开源音频编码器win32下编译的一点心得
- speex-1.2beta2开源音频编码器win32下编译的一点心得
- x264编码器的参数设置。
- http://blog.csdn.net/mcy478643968/article/details/8435612
- delphi7 编写的客户端通过RSLinx OPC方式连接ab 1400plc
- 数据的交换输出
- Sessions, Desktops and Windows Stations
- Android 常用的adb命令
- 开源编码器gstreamill的使用
- C++中const、volatile、mutable的用法
- 使用adb aapt获取手机上apk的信息
- spring的依赖注入和工作原理
- java与c++在虚函数方面的异同
- GNServer源码下载
- 1、CRM2011编程实战——清空指定页签下面的所有选项,并对页签下面的指定控件进行操作
- spring-映射关系
- Eclipse+Maven构建web项目及部署时Maven lib依赖问题的解决