Уменьшение задержки HLS вызывает проблемы с перекодированным списком воспроизведения - PullRequest
0 голосов
/ 02 июня 2019

Информация о программном обеспечении:

* ubuntu 16.04
* Nginx 1.15.1

Так что недавно я читал о низкой задержке для потока HLS на nginx и нашел решение здесь: Уменьшите задержку HLS с +30 секунд

это уменьшит задержку до ~ 7 секунд, но затем я также хочу перекодировать поток, и задержка для этого не имеет большого значения (все, что я хочу, это чтобы источник имел низкую задержку, но если транскодированная версия может, то это быть дополнительным), но когда я делаю это, источник не имеет проблем, но версия транскодирования вызывает проблемы, которые, по сути, скрипт браузера будет пытаться воспроизвести раннюю версию фрагмента, который уже был удален, так что это вызывает 404 ошибки. Так, как мне решить это так, чтобы я мог достигнуть задержки ~ 7 секунд для источника и иметь версию транскодирования, работающую в то же время?

Моя текущая конфигурация:

FFMPEG Transcode

-c:v copy -preset:v ultrafast -b:v 6000K -c:a copy -tune zerolatency -f flv rtmp://localhost/stream/$name_source
-c:v libx264 -preset ultrafast -s 852x480 -tune fastdecode -b:v 1000K -c:a copy -tune zerolatency -f flv rtmp://localhost/stream/$name_medium
-c:v libx264 -preset ultrafast -s 1280x720 -tune fastdecode -b:v 3500K -c:a copy -tune zerolatency -f flv rtmp://localhost/stream/$name_high
-c:v libx264 -preset ultrafast -s 426x240 -b:v 400K -c:a copy -tune fastdecode -tune zerolatency -f flv rtmp://localhost/stream/$name_low

HLS:

hls_fragment 1s;
hls_playlist_length 4s;
hls_variant _source BANDWIDTH=600000;
hls_variant _high BANDWIDTH=350000;
hls_variant _medium BANDWIDTH=100000;
hls_variant _low BANDWIDTH=40000;

1 Ответ

0 голосов
/ 03 июня 2019

Я могу заставить его работать, если установить одинаковую длительность фрагмента и длины плейлиста.

hls_fragment 2s;
hls_playlist_length 2s;

выше - это самое низкое значение, которое вы можете достичь при перекодировке, с задержкой ~ 5-6 секунд, в то время как транскодирование составляет ~ 13 секунд.

Это все еще не рекомендуется, так как это может вызвать некоторые проблемы

...