gst-launch相当于gst-play

时间:2016-10-11 10:42:28

标签: gstreamer

是否可以为任何gst-launch命令获取gst-play字符串等效项?

例如,使用gst-play播放rtsp流可能是:

gst-play-1.0.exe rtsp://path/to/source 

该命令使连接到服务器并打开内部(gstreamer)窗口进行播放。

等效命令可能是(我不确定):

gst-launch-1.0.exe uridecodebin uri=rtsp://path/to/source ! autovideosink

但是如何在一般情况下得到它?

我的主要目的是将视频流重定向到avi文件,而我只知道良好的gst-play命令。所以我需要在结果命令中用autovideosink替换filesink

2 个答案:

答案 0 :(得分:1)

使用playbin:

gst-launch-1.0.exe playbin uri=rtsp://path/to/source

答案 1 :(得分:1)

更新后 - 我会说你有一些选择:

1,使用gst-play选项--videosink但你也需要avi mux元素,而且必须在h264中进行编码..所以这种方法需要在gst-play的源代码中进行一些黑客攻击你显然不想要

1a,您也可以使用@thiagoss建议的playbin和参数video-sink ..然后你可以使用命名bin并将其传递给它(不确定这是否可行,但你可以试试这个) :

gst-launch-1.0 playbin uri=rtsp video-sink=bin_avi \( name=bin_avi x264enc ! avimux ! filesink location=file.avi \) 

2,获取管道图片,分析它并自己手动创建相同的东西,在类Unix系统中:

export GST_DEBUG_DUMP_DOT_DIR=`pwd`
gst-play-1.0 rtsp://... 
#or use gst-launch and playbin.. its the same thing basically

检查生成的* .dot文件..选择最新的文件(处于播放状态)并使用graphviz库将其转换为图片:

dot -T png *PLAYING.dot -o playbin.png

3,只使用uridecodebin的内容并继续像我在1a中所写的那样

uridecodebin ! video/x-raw ! x264enc ! ....

HTH