是否可以为任何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
。
答案 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