GNOME Bugzilla – Bug 741745
rtsp: Add ONVIF metadata support
Last modified: 2018-11-03 11:33:53 UTC
Some IP Cameras follow Onvif protocols (a standard for surveillance cameras). These usually have h.264 codecs. When trying to decode using playbin or uridecodebin there is an error showing: Missing element: VND.ONVIF.METADATA RTP depayloader Using the following pipeline works: $ gst-launch-1.0.exe rtspsrc location=rtsp://user:pass@0.0.0.0/rtspStream ! rtph264depay ! h264parse ! avdec_h264 ! autovideosink However, if the camera's resolution is modified, the pipeline fails to detect the correct resolution. Possibly the correct resolution information is found in the metadata. VLC does successfully decode the rtsp stream.
On the mailing list you said that there are also other errors. Which? Also note that in GIT master there is now an element to handle ONVIF metadata streams too. But even without that you should only get a warning about that and the stream should work. Since 1.4. This was exactly the topic of bug #730868
Created attachment 293031 [details] playbin rtsp verbose
Should I continue on #730868 ? I'm using latests 1.4.4 Windows binaries. It seems I am getting warnings but still pipeline fails immediately. In one ocasion I've been able to see a rendered frame but then it crashed.
Ok, but that's only a warning message :) What's the problem you're facing? The stream should play fine if you don't stop it as a result of the warning message.
That sounds like the problem is somewhere else. Can you get a debug log with GST_DEBUG=6 and attach it here?
Hi, I'm trying to output the debug messages to a file using MinGW Bash but don't seem to be able to... Is there a flag to make debug messages dump to a file?
Nevermind, gst-lauch ... 2> dump.txt did the trick. Attaching it now
Hi, here's the dump file : https://drive.google.com/file/d/0B3loFiQDg2ckT3h6RkZURUk1Ums/view?usp=sharing
0:00:04.266759981 10452 07E50DA8 WARN uridecodebin gsturidecodebin.c:930:unknown_type_cb:<uridecodebin0> warning: No decoder available for type 'application/x-rtp, media=(string)application, payload=(int)98, clock-rate=(int)90000, encoding-name=(string)VND.ONVIF.METADATA, clock-base=(uint)1692914565, seqnum-base=(uint)10790, npt-start=(guint64)368348000000, play-speed=(double)1, play-scale=(double)1'. 0:00:04.272850842 10452 07E50DA8 WARN decodebin gstdecodebin2.c:3926:gst_decode_bin_expose:<decodebin1> No suitable plugins found 0:00:04.273211259 10452 07E50DA8 WARN decodebin gstdecodebin2.c:3928:gst_decode_bin_expose:<decodebin1> error: no suitable plugins found 0:00:04.280082721 10452 07E50DA8 WARN decodebin gstdecodebin2.c:1811:analyze_new_pad:<decodebin1> error: A VND.ONVIF.METADATA RTP depayloader plugin is required to play this stream, but not installed. 0:00:04.280707262 10452 07E50DA8 WARN decodebin gstdecodebin2.c:1811:analyze_new_pad:<decodebin1> error: No decoder to handle media type 'application/x-rtp' Sergio, it looks like you don't have all plugins installed. grep REGIST ~/Downloads/playbin_level_6.txt | grep Plugin | grep oniv does not find the new rtponvif: rtponvifparse: ONVIF NTP timestamps RTP extension rtponvif: rtponviftimestamp: ONVIF NTP timestamps RTP extension
Stefan, those elements only landed recently in git master, they don't exist in 1.4 yet. Also, the problem is really that those unknown streams should just be ignored.
The rtponvifparse is for the RTP header extension, not for the VND.ONVIF.METADATA payload format. So these payloader and depayloader would need to be written if you need the full ONVIF metadata.
Thanks for replying Olivier, I am not entirely sure I need the full ONVIF metadata to get the rtsp stream resolution. Shouldn't that be available directly from the rtsp source?
The format is a simple xml-based one. Changing title accordingly.
-- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/151.