I'm attempting to using the libav libraries with Qt to decode h.264 UDP video streams, but when I use avformat_open_file, I get the following error message:
[udp @ 0x102b5bee0] Part of datagram lost due to insufficient buffer size
The message appears about 10 times and then the attempt fails. I'm trying to decode 4 different UDP streams simultaneously, each stream with a frame rate of 25fps. Wireshark indicates that the packets are between 3000 and 10000 bytes.
Here is my call to avformat_open_input:
avformat_open_input(&formatContext, udpUrl.toStdString().c_str(), NULL, NULL)
formatContext is NULL at the time that this call is made, and udpUrl is in the format "udp://ipaddress:port".
If someone could shed some light on this issue for me it would be greatly appreciated!
After digging around a bit more it looks like FFMPEG expects you to first encode the stream to MPEGTS when streaming raw H.264 over UDP. Sure enough, encoding the output stream to MPEGTS did the trick.