У меня есть потоковый транскодер, который преобразует волоконный поток с высокой пропускной способностью в многоадресный RTP-поток. Я хочу иметь возможность показывать этот поток клиенту в браузере. Если я правильно понимаю, есть 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 секунды при максимуме
.