在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名
如通过该命令可以查看电脑上扬声器,麦克风等设备。