Flussonic

Каким способом можно уменьшить длину чанков?


#1

Каким способом можно уменьшить длину чанков, при отдаче HLS ?
На данный момент задержка составляет около 20 секунд.


#2

С задержкой HLS бороться бессмысленно, она будет и это её нормальное состояние.

За размер чанка отвечает опция потока gop_duration, с 18.08 это будет segment_duration


#3

А есть альтернативы без задержки? Наши клиенты жалуются, что соседи кричат “ГООООЛ!!!” на 15-30 секунд раньше, чем мы видим это на экране.


#4

уговорить соседей подключиться к вашему же сервису, что бы гол был синхронным, а потом воспользоваться нашим плеером MSE-LD


#5

Это да, таковы реалии HLS. Читал, что Apple рекомендует 10 секунд. Кто-то пишет, что 8.
Я так понимаю Segment Count тоже вносит свою лепту в задержку.
Где можно посмотреть текущее глобальные значения Segment count и Segment duration?
Какой посоветуете размер ?


#6

поток в консоли можно посмотреть, curl’ом:

root@flussonic:~# curl http://127.0.0.1/fake/index.m3u8
#EXTM3U
#EXT-X-STREAM-INF:CLOSED-CAPTIONS=NONE,RESOLUTION=320x240,FRAME-RATE=25.000,CODECS=“avc1.420015,mp4a.40.2”,AVERAGE-BANDWIDTH=250216,BANDWIDTH=312770
tracks-v1a1/mono.m3u8

root@flussonic:~# curl http://127.0.0.1/fake/tracks-v1/mono.m3u8
#EXTM3U
#EXT-X-TARGETDURATION:5
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:88618
#EXT-X-PROGRAM-DATE-TIME:2018-08-07T12:00:47Z
#EXTINF:5.000,
2018/08/07/12/00/47-05000.ts
#EXTINF:5.000,
2018/08/07/12/00/52-05000.ts
#EXTINF:5.000,
2018/08/07/12/00/57-05000.ts
#EXTINF:5.000,
2018/08/07/12/01/02-05000.ts

В данном примере значения получаются такие:

segment_count = 4 - такое значение по-умолчанию во Flussonic;
segment_duration = 5 - во Flussonic нет значения по-умолчанию для этого параметра, оно зависит от параметров потока-источника (частота - I-frame);


#7

Задержку вносит именно длина сегмента, а не их количество. Единственный верный способ сокращения задержки - это перекодирование потока, чтобы опорный кадр (keyframe) шел каждую секунду-две. Тогда и сегменты получатся короткие.