gstreamer开发中,一般开发思路为:寻找命令行实现–命令行验证–将命令行集成到代码中—代码工程化。当然如果你要代码更优雅一点,可以用命令行用对应的API来实现。本节来总结一下gstreamer开发场景常用的工具。
一. gst-inspect查看插件或者元素
1) 查看所有元素
gst-inspect
2) 查看并过滤相关元素
gst-inspect |finstr xxxx (Windows)
gst-inspect |grep xxxx (Linux)
如gst-inspect|findstr 264
可以查到264相关元素,如264编码器和解码器元素,264的RTP封装和解封元素
3) 查看某一个元素
如 gst-inspect openh264dec
由以上信息可知:
openh264dec元素属于openh264插件,驻留在gstopenh264.dll库中。
输出能力:
以上信息说明输出能力的格式,分辨率和帧率范围。
接收输入能力:
以上信息说明输入为h264字节流,只接收baseline版本的h264。
该元素由2个属性如下:
元素名称name为openh264dec0,可以自定义元素名字。
4) 查看黑名单元素gst-inspect-1.0.exe -b
通常某些插件的依赖库不存在,gstreamer会将它列入黑名单,不可使用,通过该命可以追踪某些异常的插件。
二、 播放器工具 gst-play-1.0.exe
如播放一个视频 gst-play-1.0.exeD:\videos\test.ts
三.命令行插件验证命令gst-lauch-1.0
如:采用D3D播放命令
gst-launch-1.0 filesrc location=D:\videos\test.ts !decodebin ! d3dvideosink
四.gstreamer日志级别设置
gst的日志等级分为 none(0)error(1) warning(2) info(3) debug(4) log(5)
默认gst的日志等级为1,即error打印,出错时会打印。
1)全局日志级别设置
如果需要更高级别打印,修改环境变量GST_DEBUG即可。
如需要warning级别打印,配置export GST_DEBUG=2 (linux) 或者set GST_DEBUG=2(windows)。
2)某个插件日志级别设置
如:
set GST_DEBUG=GST_AUTOPLUG:5,GST_ELEMENT_*:4,d3dvideosink:3
即自动插件为5,所有元素默认为4,d3dvideosink元素为3。
3)日志打印函数
日志打印函数GST_ERROR(),GST_WARNING(),GST_INFO(),GST_LOG()和GST_DEBUG()宏。它们就像printf一样可以接受一些参数并且它们是使用默认种类的
4)日志另存为文件,配置环境变量GST_DEBUG_FILE=文件路径
如:Set GST_DEBUG_FILE = C:\test.log。
日志就重定向到C:\test.log文件里。
五.插件路径查找
插件路由有几个,优先级顺序如下:
GST_PLUGIN_PATH_1_0 >GST_PLUGIN_PATH>GST_PLUGIN_SYSTEM_PATH_1_0>GST_PLUGIN_SYSTEM_PATH指向目录下的插件。通常我们配置GST_PLUGIN_PATH环境变量即可如:export GST_PLUGIN_PATH=/opt/client/gstso/gstreamer-1.0,gstreamer就会从/opt/ client/gstso/gstreamer-1.0查找插件。
六.GST_REGISTRY_UPDATE的妙用
这个环境变量用来查找插件是否更新,即是否重新扫描去更新cache内容,将这个环境变量的值设置成”no”,这样gstreamer 框架在初始化的时候就不会检查plugin的更新,这样可以加速启动。
作者:江海细流 | 来源:公众号—— 音视频技术充电营
版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。