Hi. We have an existing app that relies upon FFMPEG for video stream demuxing and decoding. It sees the parrot: Duration: 00:02:35.39, start: 0.000000, bitrate: 60574 kb/s Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 59997 kb/s, 59.95 fps, 59.94 tbr, 60k tbn, 119.88 tbc (default)
This is our LandForm Studio app running on a Mac. It is an Augmented Reality display that overlays street lines, street names and place marks on the drone video in real-time. Thank you again for your help.
This appears to work just fine for MP4 files with Parrot metadata in the data stream as above. But, for an RTSP connection (which FFMPEG supports), I believe we are just getting video packets, and the metadata is instead stuffed into some RTP header extensions. How do we access them in FFMPEG after the “av_read_frame” ?
I am looking to do the same. Is there a way to write frame metadata into an MP4 file by using RTSP stream as input? I have tried several FFMPEG command line options without any luck. If I use an MP4 from Parrot SD card, all of this is there. I can also capture the packets in a .pacp file and see the metadata and extract it. But I am unable to do this using FFMPEG reading the RTSP stream and writing output to an MP4. Any help is much appreciated. Is this possible at all?
This indeed would be absolutely perfect as I only need an FFMPEG development solution not from the command line. However, I’m using the recent FFMPEG 4.3.1 baseline and I do indeed have packets coming in through av_read_frame. However, my AVPacket does NOT have an ext or extlen member. Do you mean the “AVPacketSideData *side_data;” member?
Any public way would be great (e.g. Github, Google Drive zip file, etc). Also, I wrote you a direct message with my email address. I think many folks would benefit from this code and it should probably be kept up-to-date with the latest FFMPEG baseline and generally be made available to folks on your developer forum. Most developers writing apps to support video streaming are already using FFMPEG, so a solution using for it would be best.
PDraw could be a solution, but would be a nightmare for us right now. It’s not just the logistics of reworking the PDraw library AND all of its dependencies so they work in windows for the compiler of our choice. It’s also that an exception would have to be made in our FFMPEG based programs at each step of the way to handle this single case: Parrot metadata. That is, for just Parrot metadata, redirection to your libraries would have to be made during connection initialization as well as every place packets are consumed, and finally at closing time. We use the FFMPEG libraries for both file based streams as well as network streams. FFMPEG supports something like 30 different streaming protocols. It is cross platform, and even compiles nicely as a VCPKG for the Visual Studio windows folks. We also use FFMPEG for it’s other API, e.g. (seek, encoding, queries, etc…) as well as encode/decode support. FFMPEG does indeed provide RTSP support as you can see. It just appears to ignore this rarely used optional header extension, and skips over it.