My suspecion is, that this is the reason why a WebRTC client (browser) can’t observe the video.
The NAL units sent by the drone are STAP-A aggregated and contain SPS, PPS and non-IDR slices. Besides this there are SEI packets.
But not any single IDR frame. In discuss-webrtc there is a rumour, that the browsers don’t display anything unless at least one IDR has been seen. Also - the “ordinary” RTSP display via VLC or others show a crappy picture appearance in the very first seconds (not like usual “boom” - here is the video) and also the long term observation of the video doesn’t show any key frame appearance.
See also this thread: Anafi video via WebRTC (GStreamer webrtcbin)
And find a download of a Wireshark recording of 1 minute running
gst-launch-1.0 rtspsrc location=rtsp://192.168.42.1/live ! fakesink
here: Dropbox - anafi-h264-rtp-nalu-dump.pcap - Simplify your life
EDIT:
If you open this in WS you will most likely just see RTP frames (or UDP in worst case), unless you have the H.264 decoding filter enabled. If not done do this:
- Mark an UDP package, right click, “Decode as…RTP” then save. Packages should be shown as RTP now
- The dynamic payload type is 96, so go to “Wireshark/Rreferences/Rrotocols”, unfold the protocl list, select the H264 filter and enter the number 96 as “dynamic payload type”
Now you should see the packages as H.264.
I additionally tried to extract the H.264 NALUs using this LUA plugin (which usually works fine):
But the results where strange: I did run FFMPEG over the extracted H.264. FFMPEG produced a lot of errors (“Invalid NALU type 0” and others) and came up with a 39 seconds black MP4 video So I don’t really trust the extraction result or the input is already garbage.
Is this a bug or a feature?