Camera GStreamer 1.0“;“自动视频接收器”;不打开显示器

Camera GStreamer 1.0“;“自动视频接收器”;不打开显示器,camera,ip,gstreamer,rtsp,Camera,Ip,Gstreamer,Rtsp,使用ubuntu 14.04中安装的默认GStreamer 0.10,我可以捕获我的IP摄像头: gst-launch-0.10 rtspsrc location=rtsp://admin:123456@192.168.2.254:554/mpeg4cif latency=0 ! decodebin ! ffmpegcolorspace ! autovideosink 它的问题是显示器中的捕获会在一段时间后停止。尽管相机仍在发送rtsp数据包,直到我停止执行(ctrl+c) 我最近安装了gst

使用ubuntu 14.04中安装的默认GStreamer 0.10,我可以捕获我的IP摄像头:

gst-launch-0.10 rtspsrc location=rtsp://admin:123456@192.168.2.254:554/mpeg4cif latency=0 ! decodebin ! ffmpegcolorspace ! autovideosink
它的问题是显示器中的捕获会在一段时间后停止。尽管相机仍在发送rtsp数据包,直到我停止执行(ctrl+c)

我最近安装了gstreamer的最新版本:

sudo add-apt-repository ppa:gstreamer-developers/ppa
sudo apt-get update
sudo apt-get install gstreamer1.0*
为了检查这个新版本是否解决了这个问题,我可以不断地可视化我的IP摄像头的流,以便稍后使用openCV进行处理

我已尝试执行下一个管道:

gst-launch-1.0 rtspsrc location=rtsp://admin:123456@192.168.0.123:554/mpeg4cif ! rtph264depay ! h264parse ! omxh264dec ! videoconvert ! autovideosink sync=false

gst-launch-1.0 rtspsrc location=rtsp://admin:123456@192.168.0.123:554/mpeg4cif ! rtph264depay ! h264parse ! decodebin ! videoconvert ! autovideosink sync=false

gst-launch-1.0 rtspsrc location=rtsp://admin:123456@192.168.0.123:554/mpeg4cif ! rtph264depay ! avdec_h264 ! decodebin ! videoconvert ! autovideosink sync=false
没有人有执行问题,但没有人打开显示器。使用wireshark,我可以看到摄像头发送的数据包与使用gstreamer-0.10时发送的数据包相同,gstreamer-0.10可以正常工作。如果我解决了显示问题,我可以检查这个新版本是否能够连续可视化流,或者它会在一段时间后停止,就像使用gst-0.10一样

有什么建议试试吗?也许是不同的管道

提前谢谢

编辑: 我使用GST_DEBUG=4启动命令,最后一行如下所示:

0:00:02.464441942  2517 0xb4e364f0 INFO              GST_STATES gstbin.c:2656:gst_bin_change_state_func:<pipeline0> child 'decodebin0' changed state to 4(PLAYING) successfully
0:00:02.464531274  2517 0xb4e364f0 INFO              GST_STATES gstbin.c:2227:gst_bin_element_set_state:<h264parse0> current PLAYING pending VOID_PENDING, desired next PLAYING
0:00:02.465086353  2517 0xb4e364f0 INFO              GST_STATES gstbin.c:2344:gst_bin_element_set_state:<h264parse0> skipping transition from PLAYING to  PLAYING
0:00:02.465157352  2517 0xb4e364f0 INFO              GST_STATES gstbin.c:2656:gst_bin_change_state_func:<pipeline0> child 'h264parse0' changed state to 4(PLAYING) successfully
0:00:02.465725181  2517 0xb4e364f0 INFO              GST_STATES gstbin.c:2227:gst_bin_element_set_state:<rtph264depay0> current PLAYING pending VOID_PENDING, desired next PLAYING
0:00:02.465791014  2517 0xb4e364f0 INFO              GST_STATES gstbin.c:2344:gst_bin_element_set_state:<rtph264depay0> skipping transition from PLAYING to  PLAYING
0:00:02.465838513  2517 0xb4e364f0 INFO              GST_STATES gstbin.c:2656:gst_bin_change_state_func:<pipeline0> child 'rtph264depay0' changed state to 4(PLAYING) successfully
0:00:02.466158677  2517 0xb4e364f0 INFO              GST_STATES gstbin.c:2227:gst_bin_element_set_state:<rtspsrc0> current PLAYING pending VOID_PENDING, desired next PLAYING
0:00:02.466264010  2517 0xb4e364f0 INFO              GST_STATES gstbin.c:2656:gst_bin_change_state_func:<rtspsrc0> child 'udpsink1' changed state to 4(PLAYING) successfully
0:00:02.466379426  2517 0xb4e364f0 INFO              GST_STATES gstbin.c:2656:gst_bin_change_state_func:<rtspsrc0> child 'manager' changed state to 4(PLAYING) successfully
0:00:02.466448925  2517 0xb4e364f0 INFO              GST_STATES gstbin.c:2656:gst_bin_change_state_func:<rtspsrc0> child 'udpsrc0' changed state to 4(PLAYING) successfully
0:00:02.467028587  2517 0xb4e364f0 INFO              GST_STATES gstbin.c:2656:gst_bin_change_state_func:<rtspsrc0> child 'udpsrc1' changed state to 4(PLAYING) successfully
0:00:02.467105419  2517 0xb4e364f0 INFO              GST_STATES gstbin.c:2656:gst_bin_change_state_func:<rtspsrc0> child 'udpsink0' changed state to 4(PLAYING) successfully
0:00:02.467439333  2517 0xb4e364f0 INFO              GST_STATES gstbin.c:2656:gst_bin_change_state_func:<rtspsrc0> child 'fakesrc0' changed state to 4(PLAYING) successfully
0:00:02.467504750  2517 0xb4e364f0 INFO              GST_STATES gstelement.c:2328:gst_element_continue_state:<rtspsrc0> completed state change to PLAYING
0:00:02.467558749  2517 0xb4e364f0 INFO              GST_STATES gstbin.c:2656:gst_bin_change_state_func:<pipeline0> child 'rtspsrc0' changed state to 4(PLAYING) successfully
0:00:02.467620332  2517 0xb4e364f0 INFO              GST_STATES gstelement.c:2328:gst_element_continue_state:<pipeline0> completed state change to PLAYING
0:00:02.467672581  2517 0xb4e364f0 INFO              GST_STATES gstelement.c:2233:_priv_gst_element_state_changed:<pipeline0> notifying about state-changed PAUSED to PLAYING (VOID_PENDING pending)
0:00:02.585214105  2517 0xb4e12c60 INFO               GST_EVENT gstevent.c:628:gst_event_new_caps: creating caps event application/x-rtcp
0:00:02.585415937  2517 0xb4e12c60 INFO               GST_EVENT gstevent.c:709:gst_event_new_segment: creating segment event time segment start=0:00:00.000000000, stop=99:99:99.999999999, rate=1.000000, applied_rate=1.000000, flags=0x00, time=0:00:00.000000000, base=0:00:00.000000000, position 0:00:00.000000000, duration 99:99:99.999999999
0:00:03.340291666  2517 0xb4e12af0 INFO               GST_EVENT gstevent.c:709:gst_event_new_segment: creating segment event time segment start=0:00:00.000000000, stop=99:99:99.999999999, rate=1.000000, applied_rate=1.000000, flags=0x00, time=0:00:00.000000000, base=0:00:00.000000000, position 0:00:00.000000000, duration 99:99:99.999999999
0:00:03.345178707  2517 0xb4e12af0 INFO                 basesrc gstbasesrc.c:2772:gst_base_src_loop:<udpsrc1> marking pending DISCONT
0:00:03.349542005  2517 0xb4e12af0 INFO               GST_EVENT gstevent.c:628:gst_event_new_caps: creating caps event application/x-rtcp, ssrc=(uint)246759908
0:00:03.352920727  2517 0xb4e12af0 INFO               GST_EVENT gstevent.c:628:gst_event_new_caps: creating caps event application/x-rtcp
0:00:03.358691179  2517 0xb4e12af0 INFO               GST_EVENT gstevent.c:628:gst_event_new_caps: creating caps event application/x-rtcp, ssrc=(uint)246759908
0:00:02.464441942 2517 0xb4e364f0信息GST_STATES gstbin.c:2656:GST_bin_change_state_func:child'decodebin0'已成功将状态更改为4(播放)
0:00:02.464531274 2517 0xb4e364f0信息GST_状态gstbin.c:2227:GST_-bin_元素_-set_状态:当前播放挂起无效_-pending,所需下一次播放
0:00:02.465086353 2517 0xb4e364f0信息GST_状态gstbin.c:2344:GST_bin_元素_set_状态:跳过从播放到播放的转换
0:00:02.465157352 2517 0xb4e364f0信息GST_STATES gstbin.c:2656:GST_bin_change_state_func:child'h264parse0'已成功将状态更改为4(播放)
0:00:02.465725181 2517 0xb4e364f0信息GST_状态gstbin.c:2227:GST_-bin_元素_-set_状态:当前播放挂起无效_-pending,所需下一次播放
0:00:02.465791014 2517 0xb4e364f0信息GST_状态gstbin.c:2344:GST_bin_元素_set_状态:跳过从播放到播放的转换
0:00:02.465838513 2517 0xb4e364f0信息GST_STATES gstbin.c:2656:GST_bin_change_state_func:child'rtph264depay0'已成功将状态更改为4(播放)
0:00:02.466158677 2517 0xb4e364f0信息GST_状态gstbin.c:2227:GST_-bin_元素_-set_状态:当前播放挂起无效_-pending,所需下一次播放
0:00:02.466264010 2517 0xb4e364f0信息GST_STATES gstbin.c:2656:GST_bin_change_state_func:child'udpsink1'已成功将状态更改为4(播放)
0:00:02.466379426 2517 0xb4e364f0信息GST_STATES gstbin.c:2656:GST_bin_change_state_func:child“manager”已成功将状态更改为4(播放)
0:00:02.466448925 2517 0xb4e364f0信息GST_STATES gstbin.c:2656:GST_bin_change_state_func:child'udpsrc0'已成功将状态更改为4(播放)
0:00:02.467028587 2517 0xb4e364f0信息GST_STATES gstbin.c:2656:GST_bin_change_state_func:child'udpsrc1'已成功将状态更改为4(播放)
0:00:02.467105419 2517 0xb4e364f0信息GST_STATES gstbin.c:2656:GST_bin_change_state_func:child'udpsink0'已成功将状态更改为4(播放)
0:00:02.467439333 2517 0xb4e364f0信息GST_STATES gstbin.c:2656:GST_bin_change_state_func:child'fakesrc0'已成功将状态更改为4(播放)
0:00:02.467504750 2517 0xb4e364f0信息GST_状态gstelement.c:2328:GST_元素\u继续\u状态:已完成播放状态更改
0:00:02.467558749 2517 0xb4e364f0信息GST_STATES gstbin.c:2656:GST_bin_change_state_func:child'rtspsrc0'已成功将状态更改为4(播放)
0:00:02.467620332 2517 0xb4e364f0信息GST_状态gstelement.c:2328:GST_元素\u继续\u状态:已完成播放状态更改
0:00:02.467672581 2517 0xb4e364f0信息GST_STATES gstelement.c:2233:_priv_GST_element_state_changed:通知状态已更改暂停播放(VOID_PENDING)
0:00:02.585214105 2517 0xb4e12c60信息GST\U事件gstevent.c:628:GST\U事件\u新的\u caps:创建caps事件应用程序/x-rtcp
0:00:02.585415937 2517 0xb4e12c60信息GST_事件gstevent.c:709:GST_事件新_段:创建段事件时间段开始=0:00:00.000000000,停止=99:99:99.999999999,速率=1.000000,应用_速率=1.000000,标志=0x00,时间=0:00:00.000000000,基数=0:00:00.000000000,位置0:00.000000000,持续时间99:99:999999999
0:00:03.3402916562517 0xb4e12af0信息GST_事件gstevent.c:709:GST_事件新_段:创建段事件时间段开始=0:00:00.000000000,停止=99:99:99.999999999,速率=1.000000,应用速率=1.000000,标志=0x00,时间=0:00:00.000000000,基数=0:00:00:00.000000000,位置0:00.000000000,持续时间99:99:999999999
0:00:03.345178707 2517 0xb4e12af0 INFO basesrc gstbasesrc.c:2772:gst_base_src_循环:标记挂起的不连续性
0:00:03.349542005 2517 0xb4e12af0信息GST_事件gstevent.c:628:GST_事件gstevent\u新caps:creating caps事件应用程序/x-rtcp,ssrc=(uint)246759908
0:00:03.352920727 2517 0xb4e12af0信息GST_事件gstevent.c:628:GST_事件\u新的\u caps:创建caps事件应用程序/x-rtcp
0:00:03.358691179 2517 0xb4e12af0信息GST_事件gstevent.c:628:GST_事件gstevent\u新caps:creating caps事件应用程序/x-rtcp,ssrc=(uint)246759908
我不太清楚gstreamer内部是如何工作的,但一切似乎都是正确的

调试输出中与autovideosink相关的最后几行如下:

0:00:02.458109994  2517 0xb4e364f0 INFO              GST_STATES gstbin.c:2227:gst_bin_element_set_state:<autovideosink0> current PAUSED pending VOID_PENDING, desired next PLAYING
0:00:02.458178994  2517 0xb4e364f0 INFO              GST_STATES gstbin.c:2227:gst_bin_element_set_state:<autovideosink0-actual-sink-nvoverlay> current PAUSED pending VOID_PENDING, desired next PLAYING
0:00:02.460078228  2517 0xb4e364f0 INFO              GST_STATES gstelement.c:2328:gst_element_continue_state:<autovideosink0-actual-sink-nvoverlay> completed state change to PLAYING
0:00:02.460137644  2517 0xb4e364f0 INFO              GST_STATES gstelement.c:2233:_priv_gst_element_state_changed:<autovideosink0-actual-sink-nvoverlay> notifying about state-changed PAUSED to PLAYING (VOID_PENDING pending)
0:00:02.460328226  2517 0xb4e364f0 INFO              GST_STATES gstbin.c:2656:gst_bin_change_state_func:<autovideosink0> child 'autovideosink0-actual-sink-nvoverlay' changed state to 4(PLAYING) successfully
0:00:02.460389892  2517 0xb4e364f0 INFO              GST_STATES gstelement.c:2328:gst_element_continue_state:<autovideosink0> completed state change to PLAYING
0:00:02.460436142  2517 0xb4e364f0 INFO              GST_STATES gstelement.c:2233:_priv_gst_element_state_changed:<autovideosink0> notifying about state-changed PAUSED to PLAYING (VOID_PENDING pending)
0:00:02.460566224  2517 0xb4e364f0 INFO              GST_STATES gstbin.c:2656:gst_bin_change_state_func:<pipeline0> child 'autovideosink0' changed state to 4(PLAYING) successfully
0:00:02.458109994 2517 0xb4e364f0信息GST_状态gstbin.c:2227:GST_bin_元素_set_状态:当前暂停暂停作废_暂停,需要下一次播放
0:00:02.458178994 2517 0xb4e364f0信息GST_状态gstbin.c:2227:GST_-bin_元素_-set_状态:当前暂停暂停无效_-pending,需要下一次播放
0:00:02.460078228 2517 0xb