Hello, I have been trying to use udp multicast to send high speed low latency video to multiple computers simultaneously. To do this, I have been using mpegts as a container like follows:
ffmpeg -f lavfi -i testsrc2=s=1920x1080:d=30 -c:v dirac -f mpegts udp:// 239.0.0.1:1234 ffmpeg -f lavfi -i testsrc2=s=1920x1080:d=30 -c:v dnxhd -profile:v dnxhr_hq -pix_fmt yuv422p -f mpegts udp://239.0.0.1:1234 ffmpeg -f lavfi -i testsrc2=s=1920x1080:d=30 -c:v cfhd -pix_fmt yuv422p -f mpegts udp://239.0.0.1:1234 ffmpeg -f lavfi -i testsrc2=s=1920x1080:d=30 -c:v hap -pix_fmt yuv422p -f mpegts udp://239.0.0.1:1234 ffmpeg -f lavfi -i testsrc2=s=1920x1080:d=30 -c:v huffyuv -pix_fmt yuv422p -f mpegts udp://239.0.0.1:1234 Only dirac works out of the box - the others give messages similar to: $ ffmpeg -f lavfi -i testsrc2=s=1920x1080:d=30 -c:v dnxhd -profile:v dnxhr_hq -pix_fmt yuv422p -f mpegts udp://239.0.0.1:1234 ffmpeg version 4.3.1-4ubuntu1 Copyright (c) 2000-2020 the FFmpeg developers built with gcc 10 (Ubuntu 10.2.0-9ubuntu2) configuration: --prefix=/usr --extra-version=4ubuntu1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-nvenc --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared libavutil 56. 51.100 / 56. 51.100 libavcodec 58. 91.100 / 58. 91.100 libavformat 58. 45.100 / 58. 45.100 libavdevice 58. 10.100 / 58. 10.100 libavfilter 7. 85.100 / 7. 85.100 libavresample 4. 0. 0 / 4. 0. 0 libswscale 5. 7.100 / 5. 7.100 libswresample 3. 7.100 / 3. 7.100 libpostproc 55. 7.100 / 55. 7.100 Input #0, lavfi, from 'testsrc2=s=1920x1080:d=30': Duration: N/A, start: 0.000000, bitrate: N/A Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 25 tbr, 25 tbn, 25 tbc Stream mapping: Stream #0:0 -> #0:0 (rawvideo (native) -> dnxhd (native)) Press [q] to stop, [?] for help Output #0, mpegts, to 'udp://239.0.0.1:1234': Metadata: encoder : Lavf58.45.100 Stream #0:0: Video: dnxhd (DNXHR HQ) (AVdh / 0x68645641), yuv422p, 1920x1080 [SAR 1:1 DAR 16:9], q=2-1024, 200 kb/s, 25 fps, 90k tbn, 25 tbc Metadata: encoder : Lavc58.91.100 dnxhd [mpegts @ 0x5588eb03ebc0] Stream 0, codec dnxhd, is muxed as a private data stream and may not be recognized upon reading. This is probably because dnxhd(?), cfhd, hap, and huffyuv do not have SMPTE registered identifiers. Using ffplay, I can't seem to figure out how to map that private data stream back to being a video codec. Is there a way to view video in private data streams with ffplay? Alternatively, I have been looking into other container formats to use for udp multicast and the above codecs. Matroska works but only if ffplay is running as the receiver before the sender starts sending. eg ffplay udp://239.0.0.1:1234 & # then ffmpeg -f lavfi -i testsrc2=s=1920x1080:d=30 -c:v cfhd -pix_fmt yuv422p -f matroska udp://239.0.0.1:1234 If the receiver is started after ffmpeg, I get the following message: ffplay version 4.3.1-4ubuntu1 Copyright (c) 2003-2020 the FFmpeg developers built with gcc 10 (Ubuntu 10.2.0-9ubuntu2) configuration: --prefix=/usr --extra-version=4ubuntu1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-nvenc --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared libavutil 56. 51.100 / 56. 51.100 libavcodec 58. 91.100 / 58. 91.100 libavformat 58. 45.100 / 58. 45.100 libavdevice 58. 10.100 / 58. 10.100 libavfilter 7. 85.100 / 7. 85.100 libavresample 4. 0. 0 / 4. 0. 0 libswscale 5. 7.100 / 5. 7.100 libswresample 3. 7.100 / 3. 7.100 libpostproc 55. 7.100 / 55. 7.100 udp://239.0.0.1:1234: Invalid data found when processing input Are there some options that I need to specify in ffmpeg to avoid this when muxing with Matroska? Like repeating headers, limiting packet sizes etc. Otherwise are there other recommendations of alternative container formats to use when multicast udp streaming? Regards Rohan _______________________________________________ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".