gstramer(二) 重要工具

2022-06-14 08:53:32 浏览数 (1)

  在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.exe D:\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的更新,这样可以加速启动。

七 .gst-device-monitor-1.0查看device名  

如通过该命令可以查看电脑上扬声器,麦克风等设备。

0 人点赞