2

Я пытаюсь перекодировать наши потоки hls в многоадресный поток UDP с помощью ffmpeg, и я получаю слишком много потерянных пакетов.

Я использую следующую команду для транскодирования

ffmpeg \
-loglevel warning \
-nostats \
-re \
-max_reload 2 \
-i "http://hls-server/stream/playlist.m3u8" \
-c:v copy \
-c:a copy \
-f mpegts \
-flush_packets 0 \
"udp://remote-ip:40001?pkt_size=1316&buffer_size=8388608"

на удаленном хосте у меня работает клиент, который проверяет счетчик непрерывности заголовков mpegts, и я получаю сообщения об ошибках несколько раз в минуту.

Я проверил связь между серверами, используя iperf - 100 Мбит / с в течение получаса без потери одного пакета.

У меня был этот тест, запущенный параллельно с ffmpeg, и вышеупомянутая потеря пакетов для потока ffmpeg произошла, но не была потеря пакетов для iperf.

Я уже пытался настроить net.core.rmem_max и net.core.wmem_max безуспешно. Я пытался увеличить никель буферы, используя ethtool -G tx xxx но безуспешно. И я уже пробовал несколько версий ffmpeg 3.3.9, 3.4.5, 4.0.3 и 4.1.

У кого-нибудь есть идеи, в чем может быть причина этой проблемы и как ее исправить?

0