当源停止并再次启动时,GStreamer无法读取输入视频

时间:2013-11-16 15:10:21

标签: gstreamer

我的gstreamer命令可以在Linux平台上将rtsp视频转换为h 264

gst-launch-1.0 -v rtspsrc location="source" ! rtph264depay ! avdec_h264 ! videoscale ! 
videorate skip-to-first=true ! videoconvert ! queue ! 
capsfilter caps="video/x-raw,format=(string)I420,width=(int)320,height=(int)240,framerate=(fraction)30/1,colorimetry=(string)bt601" !
x264enc byte-stream=true threads=1 me=1 subme=6 bitrate=100 speed-preset=1 ! video/x-h264 ! rtph264pay pt=96 mtu=1300 ! udpsink clients="IP:port"

但是一旦源停止发送视频输入并再次启动,那么gstreamer管道不会读取新的输入流,我需要再次重新启动gst命令来读取新输入。

无论如何都要检查源是否停止发送视频以便我可以编写脚本,并且每次脚本都会启动gst命令,如果源的行为如此。

1 个答案:

答案 0 :(得分:0)

gst-launch是一个很好的测试工具,但是就信号而言,你可以做的事情有限。您可以围绕该管道编写应用程序并监视EOS(流末尾)消息,并根据需要处理它。请参阅“应用程序编写者指南”的第25页:http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/manual.pdf

同时,rtspsrc具有超时属性,您可以尝试将其设置为更高的临时解决方法。