RTP трансляция в браузер с использованием FFMPEG / nginx - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть потоковый транскодер, который преобразует волоконный поток с высокой пропускной способностью в многоадресный RTP-поток. Я хочу иметь возможность показывать этот поток клиенту в браузере. Если я правильно понимаю, есть 2 проблемы:

  1. Скорее всего, клиент не поддерживает многоадресную передачу по своей сети
  2. RTP не может быть воспроизведен в браузере, поэтому его необходимо преобразовать в другой формат

Что я уже сделал (используя FFMPEG):

Метод 1: скопируйте поток в .m3u8 без мультиплексирования, затем разместите его на веб-сервере (* 1020) *) ffmpeg -protocol_whitelist file,udp,rtp -i ./stream.sdp -c:v copy -c:a copy -bufsize 50k -flags -global_header -hls_time 1 -f hls -hls_playlist_type event -hls_list_size 3 ./video/stream.m3u8

Метод 2: включите HLS на Nginx и преобразуйте поток в RTMP ffmpeg -protocol_whitelist file,udp,rtp -i ./stream.sdp -vcodec libx264 -vprofile baseline -acodec aac -strict -2 -f flv rtmp://localhost/show/stream

Оба эти метода приводят к работающему прямому потоку, но задержка остается около 5 секунд.

Есть ли способ ускорить трансляцию? Максимальная скорость прямой трансляции составляет около 1 секунды при максимуме

.

1 Ответ

0 голосов
/ 21 апреля 2020

Both of these methods result in a working livestream, but the delay remains around 5 seconds.

Это действительно очень хорошо для HLS. Да, есть способы быть быстрее в Luke WebRT C и CTE. Но ничего стандартного, вам придется самостоятельно разрабатывать плеер и часть инфраструктуры.

...