gstreamer 中 gst-inspect获取信息,gst-launch测试链路示例

分享加备忘。

用gstreamer架构做对媒体开发时,gst-inspect 和gst-launch是两个非常使用的小工具,前者是用于查询库中已经包含的所有element以及他们的详细信息,后者用于快速构建一条pipeline,这个命令最爽,因为只要一句话,你就可以感受到播放的快感。废话不多说,直接看示例:

1 gst-inspect用法:

首先进入命令行下,然后键入:

gst-inspect, 所有element都显示;

gst-inspect >d:/c.txt 将所有element都导出到d盘根目录下的c。txt文件中,这个命令在你想要查找某个element但有不确定其全名时很有用

gst-inspect ffmpeg >d/c.txt 同上,只是导出的element范围缩小到ffmpeg范围内

gst-inspect ffdec_h264 . 显示ffdec-h264的详细信息,你可以输入想要查询的任何element,只要已经存在,就可以找到

 

2 gst-launch 构建链路用法:

最开始要构建链路,当然用playbin、playbin2,decodebin, decodebin2,uridecodebin这类上层的element是最简单省事的了。

比如,你想播放一个flv文件,位于d:/test_videos/1.flv,首先进入命令行下,然后键入:

gst-launch filesrc location=d:/test_videos/1.flv !decodebin !autovideosink         利用了filesrc decodebin 和autovideosink 3个element,其中设置了filesrc的location属性值为文件路径
gst-launch filesrc location=d:/test_videos/1.flv !decodebin2 !autovideosink       同上,只是decodebin用较新的decodebin2代替了

gst-launch uridecodebin uri=file:///d:/test_videos/1.flv !autovideosink        用uridecodebin 和autovideosink 2个element, 其中uridecodebin的属性uri设置了

gst-launch playbin uri=file:///d:test_video/1.flv               利用playbin一个element,设置了其属性uri 为file:///加文件路径
gst-launch playbin2 uri=file:///d:test_video/1.flv             同上,只是用较新的playbin2代替了playbin

 

如果想要自己用基本element而不用上层bin element 进行链路构建,那需要以下步骤。

比如, 你想播放一个flv文件,位于d:/test_videos/0.flv

首先你需要确定需要什么样的解码element来构建,所以,你首先需要确定该文件编码格式是什么,假如为h264

然后,在命令行下键入:

gst-launch filesrc location=d:/test_videos/0.flv !flvdemux !ffdec_h264 !autovideosink

其中,flvdemux用来分离多路数据的, ffdec-h264用来解码,最后由autovideosink播放

如果你想播放其他文件,只需要根据相应文件容器格式指定特定的demux,再根据编码格式指定特定的解码器便可以了,如果不清楚改用哪个element,最好的方法当然用是gst-inspect去查找和验证了

 

   

 

 

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
可以使用 `weston-screenshooter` 工具将屏幕截图数据输出到管道,然后使用 `gst-launch` 工具将该数据流编码为视频文件。 下面是一个使用 `weston-screenshooter` 和 `gst-launch` 进行屏幕录制的示例: ``` weston-screenshooter - | gst-launch-1.0 -e -q fdsrc ! image/png,width=1920,height=1080,framerate=30/1 ! pngdec ! videoconvert ! x264enc ! mp4mux ! filesink location=output.mp4 ``` 在这个示例,`weston-screenshooter` 将屏幕截图数据输出到标准输出,然后通过管道符 `|` 将其传递给 `gst-launch-1.0` 进行编码和保存。 `gst-launch-1.0` 命令使用 `fdsrc` 插件从标准输入读取数据,并使用 `image/png` 描述符指定输入数据流的格式。接下来使用 `pngdec` 插件将输入数据流解码成 `video/x-raw` 格式,然后使用 `videoconvert` 插件将输入数据流转换为 `x264enc` 编码器所需的格式,最后使用 `mp4mux` 插件将编码后的视频流和音频流合并为 MP4 格式的文件,并使用 `filesink` 插件将其保存到指定的文件。 需要注意的是,由于 `weston-screenshooter` 默认输出 PNG 格式的屏幕截图数据,因此需要使用 `pngdec` 插件将其解码为 `video/x-raw` 格式,并使用 `videoconvert` 插件将其转换为 `x264enc` 编码器所需的格式。如果需要使用其他编码器或输出格式,可以根据需要修改 `gst-launch-1.0` 命令的参数。 另外,需要确保系统已经安装了 `gst-launch-1.0` 和相应的 GStreamer 插件。如果遇到问题,可以使用 `gst-inspect-1.0` 命令检查系统已经安装的 GStreamer 插件和支持的数据格式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值