[FFmpeg-user] Continuity issues with multiple UDP output streams.
Marton Balint
cus at passwd.hu
Tue Nov 12 22:22:35 EET 2019
On Tue, 12 Nov 2019, James E. Baird wrote:
> To add to this, I did some further testing and it would seem the lower
> the bitrate I make the streams from the transmitter, the more streams I
> can have without continuity errors on the receiver side. I did a
> resolution change from 1080p to 480p and dropped the bitrate on my
> streams from 12000-14000K to 1500K (mpeg2 to mpeg2) and I could add 7
> processes before I started seeing the streams having issues.
>
> Using this command:
> ffmpeg -i 'udp://@237.1.1.92:59092' -s 864x486 -b:v 1000000 -acodec copy -f mpegts 'udp://@237.129.100.2:59002?pkt_size=1316'
>
> Not sure if this helps anyone have a eureka moment.
If you are only copying streams, then I suggest you use another tool, like
socat to relay streams.
Not that you can't make ffmpeg work to some degree. First you have to make
sure you are not dropping packets on the input side. I suggest you use 0
as fifo size and 512000 as buffer size (see the docs for these options).
In order to be able to set this you have to tune linux kernel parameters
(net.core.rmem_max) as well.
Then you have to make sure your output is not bursting too much. You
should limit the output bitrate using the bitrate option. Make sure your
processes can still operate at realtime speed, otherwise packets will
queue up or get dropped. Even if you do this, depending on your receiver
device it might still not work, because ffmpeg mpegts muxer does not
honor TS buffering requirements, so the generated TS will not be standard
compliant.
Regards,
Marton
More information about the ffmpeg-user
mailing list