rtsp h264 depayloader error

Jon Beare jon.beare at meghcomputing.com
Mon May 8 17:34:17 UTC 2023


Hello,

I'm attempting to read an h264 encoded RTSP stream from a NVR (model#
XVR302-16Q3) but I'm getting the following error:
$ gst-launch-1.0 rtspsrc location=rtsp://192.168.0.4:554/unicast/c1/s0/live
! decodebin ! fakesink
...
(gst-launch-1.0:57567): GStreamer-CRITICAL **: 10:03:20.825:
_gst_util_uint64_scale_int: assertion 'denom > 0' failed
0:00:01.968079398 57778 0x7fa53c0321e0 WARN               rtpsource
rtpsource.c:1233:update_receiver_stats: unacceptable seqnum received (seqnr
5650, delta 18436, packet_rate: -1, max_dropout: 3000, max_misorder: 100)
ERROR: from element /GstPipeline:pipeline0/GstDecodeBin:decodebin0: Your
GStreamer installation is missing a plug-in.
Additional debug info:
../gst/playback/gstdecodebin2.c(4701): gst_decode_bin_expose ():
/GstPipeline:pipeline0/GstDecodeBin:decodebin0:
no suitable plugins found:
Missing decoder: application/x-rtp (application/x-rtp, media=(string)video,
payload=(int)96, clock-rate=(int)0, encoding-name=(string)H264,
packetization-mode=(string)0, profile-level-id=(string)000167,
sprop-parameter-sets=(string)"AAABZ0IAH5Y1QeB7TcFAQVAAAD6AAAdTCEA\=\,AAABaM4xsg\=\=",
a-framerate=(string)15, npt-start=(guint64)0, play-speed=(double)1,
play-scale=(double)1, onvif-mode=(boolean)false, ssrc=(uint)3983474854)
Missing element: H264 video RTP depayloader
...

While the logs point to a missing rtph264depay element the failed
assertions are suspicious. I tried explicitly including the depayloader in
the pipeline and got another error:
$ gst-launch-1.0 rtspsrc location=rtsp://192.168.0.4:554/unicast/c1/s0/live
! rtph264depay ! h264parse ! avdec_h264 ! fakesink
...
(gst-launch-1.0:57832): GStreamer-CRITICAL **: 10:24:37.057:
_gst_util_uint64_scale_int: assertion 'denom > 0' failed
0:00:02.084069495 57861 0x7f68b0015a40 WARN               rtpsource
rtpsource.c:1233:update_receiver_stats: unacceptable seqnum received (seqnr
16543, delta -6907, packet_rate: -1, max_dropout: 3000, max_misorder: 100)
WARNING: from element /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0: Delayed
linking failed.
Additional debug info:
gst/parse/grammar.y(540): gst_parse_no_more_pads ():
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0:
failed delayed linking some pad of GstRTSPSrc named rtspsrc0 to some pad of
GstRtpH264Depay named rtph264depay0
ERROR: from element
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSrc:udpsrc1: Internal data
stream error.
Additional debug info:
../libs/gst/base/gstbasesrc.c(3127): gst_base_src_loop ():
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSrc:udpsrc1:
streaming stopped, reason not-linked (-1)

It would appear that either there is something wrong with the RSTP stream
or GST is unable to parse it for some reason. For reference, VLC is able to
decode the RTSP stream and describes the encoding as `Codec: H264 - MPEG-4
AVC (part 10) (h264)`.

Any pointers on how to get past this would be appreciated! Please let me
know if you need any additional information

Thanks,
Jon
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20230508/de3459e0/attachment.htm>


More information about the gstreamer-devel mailing list