issue playing h264 stream from some ip camera

lestoilfante lestoilfante at gmail.com
Wed Mar 11 10:27:53 PDT 2015


Hello folks,

I've an issue playing h264 video from an Acti ip camera. This is my
standard pipeline used to play rtsp stream coming from other vendors:

gst-launch-1.0 -v rtspsrc location='rtsp://10.254.254.2/onvif-stream1'
user-id=admin user-pw=123456 ! rtph264depay ! h264parse ! decodebin !
autovideosink

Usually my pipeline works fine with other ip camera vendors but this time
when the camera switch from day to night mode or the opposite my video turn
to gray, when I switch back to d/n mode I had when the pipeline was started
video play fine again.

The underlying logs get me think some caps get renegotiated and this screw
up things somehow,
any hint?
Thank you


Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Progress: (open) Opening Stream
Progress: (connect) Connecting to rtsp://10.254.254.2/onvif-stream1
Progress: (open) Retrieving server options
Progress: (open) Retrieving media info

** (gst-launch-1.0:14832): WARNING **: rtpmap type not given for dynamic
payload 107

(gst-launch-1.0:14832): GStreamer-CRITICAL **: gst_caps_get_structure:
assertion 'GST_IS_CAPS (caps)' failed

(gst-launch-1.0:14832): GStreamer-CRITICAL **: gst_structure_set: assertion
'structure != NULL' failed

(gst-launch-1.0:14832): GStreamer-CRITICAL **: gst_structure_set: assertion
'structure != NULL' failed

(gst-launch-1.0:14832): GStreamer-CRITICAL **: gst_caps_get_structure:
assertion 'GST_IS_CAPS (caps)' failed

(gst-launch-1.0:14832): GStreamer-CRITICAL **: gst_structure_set: assertion
'structure != NULL' failed
Progress: (request) SETUP stream 0
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager: latency = 2000
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager: ntp-sync =
false
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager:
use-pipeline-clock = false
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager:
drop-on-latency = false
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager: buffer-mode =
Slave receiver to sender clock
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSrc:udpsrc1: timeout =
5000000000
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSrc:udpsrc2.GstPad:src:
caps = application/x-rtcp
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSrc:udpsrc2: caps =
application/x-rtcp
Progress: (request) SETUP stream 1
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSrc:udpsrc4: timeout =
5000000000
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSrc:udpsrc5.GstPad:src:
caps = application/x-rtcp
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSrc:udpsrc5: caps =
application/x-rtcp

(gst-launch-1.0:14832): GStreamer-CRITICAL **: gst_caps_get_structure:
assertion 'GST_IS_CAPS (caps)' failed

(gst-launch-1.0:14832): GStreamer-CRITICAL **: gst_structure_get_string:
assertion 'structure != NULL' failed
Progress: (request) SETUP stream 2

(gst-launch-1.0:14832): GStreamer-CRITICAL **: gst_caps_get_structure:
assertion 'GST_IS_CAPS (caps)' failed

(gst-launch-1.0:14832): GStreamer-CRITICAL **: gst_structure_set_name:
assertion 'structure != NULL' failed
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSrc:udpsrc6: timeout =
5000000000
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSrc:udpsrc7.GstPad:src:
caps = application/x-rtcp
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSrc:udpsrc7: caps =
application/x-rtcp
Progress: (open) Opened Stream
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Progress: (request) Sending PLAY request
Progress: (request) Sending PLAY request
Progress: (request) Sent PLAY request
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSrc:udpsrc1: timeout = 0
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSrc:udpsrc4: timeout = 0
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSrc:udpsrc6: timeout = 0
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager.GstGhostPad:recv_rtp_src_0_574432596_96:
caps = application/x-rtp, media=(string)video, payload=(int)96,
clock-rate=(int)90000, encoding-name=(string)H264,
packetization-mode=(string)1, profile-level-id=(string)42001E,
sprop-parameter-sets=(string)"Z2TgKKwa0A8ARPywgAAAAwCAAAAPB4oRUA\=\=\,aO4CXLA\=",
a-tool=(string)"Streaming\ Media\ v2010.05.25", a-type=(string)broadcast,
seqnum-base=(uint)20813, npt-start=(guint64)0, play-speed=(double)1,
play-scale=(double)1
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0.GstGhostPad:recv_rtp_src_0_574432596_96:
caps = application/x-rtp, media=(string)video, payload=(int)96,
clock-rate=(int)90000, encoding-name=(string)H264,
packetization-mode=(string)1, profile-level-id=(string)42001E,
sprop-parameter-sets=(string)"Z2TgKKwa0A8ARPywgAAAAwCAAAAPB4oRUA\=\=\,aO4CXLA\=",
a-tool=(string)"Streaming\ Media\ v2010.05.25", a-type=(string)broadcast,
seqnum-base=(uint)20813, npt-start=(guint64)0, play-speed=(double)1,
play-scale=(double)1
/GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0.GstPad:src: caps =
video/x-h264, stream-format=(string)avc, alignment=(string)au,
codec_data=(buffer)0164e028ffe100196764e028ac1ad00f0044fcb080000003008000000f078a115001000568ee025cb0
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:src: caps =
video/x-h264, stream-format=(string)avc, alignment=(string)au,
codec_data=(buffer)0164e028ffe100196764e028ac1ad00f0044fcb080000003008000000f078a115001000568ee025cb0,
width=(int)1920, height=(int)1080, parsed=(boolean)true
/GstPipeline:pipeline0/GstDecodeBin:decodebin0.GstGhostPad:sink.GstProxyPad:proxypad0:
caps = video/x-h264, stream-format=(string)avc, alignment=(string)au,
codec_data=(buffer)0164e028ffe100196764e028ac1ad00f0044fcb080000003008000000f078a115001000568ee025cb0,
width=(int)1920, height=(int)1080, parsed=(boolean)true
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstTypeFindElement:typefind.GstPad:src:
caps = video/x-h264, stream-format=(string)avc, alignment=(string)au,
codec_data=(buffer)0164e028ffe100196764e028ac1ad00f0044fcb080000003008000000f078a115001000568ee025cb0,
width=(int)1920, height=(int)1080, parsed=(boolean)true
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstTypeFindElement:typefind.GstPad:sink:
caps = video/x-h264, stream-format=(string)avc, alignment=(string)au,
codec_data=(buffer)0164e028ffe100196764e028ac1ad00f0044fcb080000003008000000f078a115001000568ee025cb0,
width=(int)1920, height=(int)1080, parsed=(boolean)true
/GstPipeline:pipeline0/GstDecodeBin:decodebin0.GstGhostPad:sink: caps =
video/x-h264, stream-format=(string)avc, alignment=(string)au,
codec_data=(buffer)0164e028ffe100196764e028ac1ad00f0044fcb080000003008000000f078a115001000568ee025cb0,
width=(int)1920, height=(int)1080, parsed=(boolean)true
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:sink: caps =
video/x-h264, stream-format=(string)avc, alignment=(string)au,
codec_data=(buffer)0164e028ffe100196764e028ac1ad00f0044fcb080000003008000000f078a115001000568ee025cb0
/GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0.GstPad:sink: caps =
application/x-rtp, media=(string)video, payload=(int)96,
clock-rate=(int)90000, encoding-name=(string)H264,
packetization-mode=(string)1, profile-level-id=(string)42001E,
sprop-parameter-sets=(string)"Z2TgKKwa0A8ARPywgAAAAwCAAAAPB4oRUA\=\=\,aO4CXLA\=",
a-tool=(string)"Streaming\ Media\ v2010.05.25", a-type=(string)broadcast,
seqnum-base=(uint)20813, npt-start=(guint64)0, play-speed=(double)1,
play-scale=(double)1
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0.GstGhostPad:recv_rtp_src_0_574432596_96.GstProxyPad:proxypad12:
caps = application/x-rtp, media=(string)video, payload=(int)96,
clock-rate=(int)90000, encoding-name=(string)H264,
packetization-mode=(string)1, profile-level-id=(string)42001E,
sprop-parameter-sets=(string)"Z2TgKKwa0A8ARPywgAAAAwCAAAAPB4oRUA\=\=\,aO4CXLA\=",
a-tool=(string)"Streaming\ Media\ v2010.05.25", a-type=(string)broadcast,
seqnum-base=(uint)20813, npt-start=(guint64)0, play-speed=(double)1,
play-scale=(double)1
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager.GstGhostPad:recv_rtp_src_0_574432596_96.GstProxyPad:proxypad11:
caps = application/x-rtp, media=(string)video, payload=(int)96,
clock-rate=(int)90000, encoding-name=(string)H264,
packetization-mode=(string)1, profile-level-id=(string)42001E,
sprop-parameter-sets=(string)"Z2TgKKwa0A8ARPywgAAAAwCAAAAPB4oRUA\=\=\,aO4CXLA\=",
a-tool=(string)"Streaming\ Media\ v2010.05.25", a-type=(string)broadcast,
seqnum-base=(uint)20813, npt-start=(guint64)0, play-speed=(double)1,
play-scale=(double)1
/GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0.GstPad:src: caps =
video/x-h264, stream-format=(string)avc, alignment=(string)au,
codec_data=(buffer)0164e028ffe100196764e028ac1ad00f0044fcb080000003008000000c878a115001000568ee025cb0
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:sink: caps =
video/x-h264, stream-format=(string)avc, alignment=(string)au,
codec_data=(buffer)0164e028ffe100196764e028ac1ad00f0044fcb080000003008000000c878a115001000568ee025cb0
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstH264Parse:h264parse1.GstPad:src:
caps = video/x-h264, stream-format=(string)avc, alignment=(string)au,
codec_data=(buffer)0164e028ffe100196764e028ac1ad00f0044fcb080000003008000000f078a115001000568ee025cb0,
width=(int)1920, height=(int)1080, parsed=(boolean)true
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstCapsFilter:capsfilter0.GstPad:src:
caps = video/x-h264, stream-format=(string)avc, alignment=(string)au,
codec_data=(buffer)0164e028ffe100196764e028ac1ad00f0044fcb080000003008000000f078a115001000568ee025cb0,
width=(int)1920, height=(int)1080, parsed=(boolean)true
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/avdec_h264:avdec_h264-0.GstPad:sink:
caps = video/x-h264, stream-format=(string)avc, alignment=(string)au,
codec_data=(buffer)0164e028ffe100196764e028ac1ad00f0044fcb080000003008000000f078a115001000568ee025cb0,
width=(int)1920, height=(int)1080, parsed=(boolean)true
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstCapsFilter:capsfilter0.GstPad:sink:
caps = video/x-h264, stream-format=(string)avc, alignment=(string)au,
codec_data=(buffer)0164e028ffe100196764e028ac1ad00f0044fcb080000003008000000f078a115001000568ee025cb0,
width=(int)1920, height=(int)1080, parsed=(boolean)true
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstH264Parse:h264parse1.GstPad:sink:
caps = video/x-h264, stream-format=(string)avc, alignment=(string)au,
codec_data=(buffer)0164e028ffe100196764e028ac1ad00f0044fcb080000003008000000f078a115001000568ee025cb0,
width=(int)1920, height=(int)1080, parsed=(boolean)true
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/avdec_h264:avdec_h264-0.GstPad:src:
caps = video/x-raw, format=(string)I420, width=(int)1920, height=(int)1080,
pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive,
colorimetry=(string)bt709, framerate=(fraction)15/1
/GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0.GstGhostPad:sink.GstProxyPad:proxypad1:
caps = video/x-raw, format=(string)I420, width=(int)1920, height=(int)1080,
pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive,
colorimetry=(string)bt709, framerate=(fraction)15/1
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager.GstGhostPad:recv_rtp_src_1_2143560794_0:
caps = application/x-rtp, media=(string)audio, payload=(int)0,
clock-rate=(int)8000, encoding-name=(string)PCMU,
a-tool=(string)"Streaming\ Media\ v2010.05.25", a-type=(string)broadcast,
seqnum-base=(uint)75, npt-start=(guint64)0, play-speed=(double)1,
play-scale=(double)1
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0.GstGhostPad:recv_rtp_src_1_2143560794_0:
caps = application/x-rtp, media=(string)audio, payload=(int)0,
clock-rate=(int)8000, encoding-name=(string)PCMU,
a-tool=(string)"Streaming\ Media\ v2010.05.25", a-type=(string)broadcast,
seqnum-base=(uint)75, npt-start=(guint64)0, play-speed=(double)1,
play-scale=(double)1
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0.GstGhostPad:recv_rtp_src_1_2143560794_0.GstProxyPad:proxypad15:
caps = application/x-rtp, media=(string)audio, payload=(int)0,
clock-rate=(int)8000, encoding-name=(string)PCMU,
a-tool=(string)"Streaming\ Media\ v2010.05.25", a-type=(string)broadcast,
seqnum-base=(uint)75, npt-start=(guint64)0, play-speed=(double)1,
play-scale=(double)1
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager.GstGhostPad:recv_rtp_src_1_2143560794_0.GstProxyPad:proxypad14:
caps = application/x-rtp, media=(string)audio, payload=(int)0,
clock-rate=(int)8000, encoding-name=(string)PCMU,
a-tool=(string)"Streaming\ Media\ v2010.05.25", a-type=(string)broadcast,
seqnum-base=(uint)75, npt-start=(guint64)0, play-speed=(double)1,
play-scale=(double)1
/GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0/GstXvImageSink:autovideosink0-actual-sink-xvimage.GstPad:sink:
caps = video/x-raw, format=(string)I420, width=(int)1920, height=(int)1080,
pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive,
colorimetry=(string)bt709, framerate=(fraction)15/1
/GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0.GstGhostPad:sink:
caps = video/x-raw, format=(string)I420, width=(int)1920, height=(int)1080,
pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive,
colorimetry=(string)bt709, framerate=(fraction)15/1
/GstPipeline:pipeline0/GstDecodeBin:decodebin0.GstDecodePad:src_0.GstProxyPad:proxypad13:
caps = video/x-raw, format=(string)I420, width=(int)1920, height=(int)1080,
pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive,
colorimetry=(string)bt709, framerate=(fraction)15/1
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager/GstRtpSession:rtpsession2.GstPad:send_rtcp_src:
caps = application/x-rtcp
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager.GstGhostPad:send_rtcp_src_2:
caps = application/x-rtcp
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSink:udpsink5.GstPad:sink:
caps = application/x-rtcp
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager.GstGhostPad:send_rtcp_src_2.GstProxyPad:proxypad10:
caps = application/x-rtcp
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager/GstRtpSession:rtpsession1.GstPad:send_rtcp_src:
caps = application/x-rtcp
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager.GstGhostPad:send_rtcp_src_1:
caps = application/x-rtcp
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSink:udpsink3.GstPad:sink:
caps = application/x-rtcp
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager.GstGhostPad:send_rtcp_src_1.GstProxyPad:proxypad7:
caps = application/x-rtcp
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager/GstRtpSession:rtpsession0.GstPad:send_rtcp_src:
caps = application/x-rtcp
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager.GstGhostPad:send_rtcp_src_0:
caps = application/x-rtcp
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSink:udpsink1.GstPad:sink:
caps = application/x-rtcp
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager.GstGhostPad:send_rtcp_src_0.GstProxyPad:proxypad4:
caps = application/x-rtcp


##### DAY/NIGHT SWITCH
##### AFTER THAT I SEE ONLY GRAY VIDEO


/GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0.GstPad:src: caps =
video/x-h264, stream-format=(string)avc, alignment=(string)au,
codec_data=(buffer)0164e028ffe100196764e028ac1ad00f0044fcb0800000030080000006078a115001000568ee021cb0
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:sink: caps =
video/x-h264, stream-format=(string)avc, alignment=(string)au,
codec_data=(buffer)0164e028ffe100196764e028ac1ad00f0044fcb0800000030080000006078a115001000568ee021cb0

/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager.GstGhostPad:recv_rtcp_sink_1.GstProxyPad:proxypad6:
caps = application/x-rtcp
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager/GstRtpSession:rtpsession1.GstPad:sync_src:
caps = application/x-rtcp
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager/GstRtpSsrcDemux:rtpssrcdemux1.GstPad:rtcp_sink:
caps = application/x-rtcp
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager/GstRtpSession:rtpsession1.GstPad:recv_rtcp_sink:
caps = application/x-rtcp
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager.GstGhostPad:recv_rtcp_sink_1:
caps = application/x-rtcp



##### DAY/NIGHT SWITCH BACK TO ORIGINAL SOURCE
##### AFTER THAT VIDEO PLAY FINE AGAIN



/GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0.GstPad:src: caps =
video/x-h264, stream-format=(string)avc, alignment=(string)au,
codec_data=(buffer)0164e028ffe1001a6764e028ac1ad00f0044fcb080000003008000000301878a115001000568ee0672c0
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:sink: caps =
video/x-h264, stream-format=(string)avc, alignment=(string)au,
codec_data=(buffer)0164e028ffe1001a6764e028ac1ad00f0044fcb080000003008000000301878a115001000568ee0672c0
/GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0.GstPad:src: caps =
video/x-h264, stream-format=(string)avc, alignment=(string)au,
codec_data=(buffer)0164e028ffe100196764e028ac1ad00f0044fcb080000003008000000c878a115001000568ee025cb0
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:sink: caps =
video/x-h264, stream-format=(string)avc, alignment=(string)au,
codec_data=(buffer)0164e028ffe100196764e028ac1ad00f0044fcb080000003008000000c878a115001000568ee025cb0
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20150311/f3b73abf/attachment-0001.html>


More information about the gstreamer-devel mailing list