Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Следует учесть, что файл настроек flashphoner.properties будет перезаписан после этой команды.

Поддержка Low Latency HLS

Начиная со сборки 5.2.1181, поддерживается Low Latency HLS (LL HLS). Эта возможность включается при помощи настройки

Code Block
themeRDark
hls_ll_enabled=true
hls_new_http_stack=true

В этом случае плееры, которые поддерживают LL HLS (например, HLS.JS), будут играть дополнительные HLS сегменты и давать меньшую задержку по сравнению с плеерами, которые их не играют (например, VideoJS).

Для того, чтобы LL HLS проигрывался корректно, необходимо, как и для обычного HLS, обеспечить стабильный FPS публикуемого потока и стабильный интервал между ключевыми кадрами. Таким образом, исходный поток рекомендуется публиковать как RTMP с параметрами

Image Added

Image Added

При публикации WebRTC потока рекомендуется включать транскодинг для HLS, например

Code Block
themeRDark
hls_player_width=848
hls_player_height=480
video_filter_enable_fps=true

Каталог для нарезки сегментов LL HLS

По умолчанию, сегменты LL HLS помещаются в подкаталоги с именами потоков в каталог

Code Block
themeRDark
ll_hls_dir=/usr/local/FlashphonerWebCallServer/ll-hls

При изменении местоположения, например

Code Block
themeRDark
ll_hls_dir=/opt/ll-hls

необходимо назначить права доступа командой

Code Block
languagebash
themeRDark
/usr/local/FlashphonerWebCallServer/bin/webcallserver set-permissions

и перезапустить WCS,  чтобы применить изменения.

Прелоадер для LL HLS

Как и для обычного HLS, для LL HLS может использоваться прелоадер. Сегменты прелоадера LL HLS по умолчанию помещаются в каталог

Code Block
themeRDark
ll_hls_preloader_dir=/usr/local/FlashphonerWebCallServer/ll-hls/.preloader

Расположение может быть изменено, например

Code Block
themeRDark
ll_hls_preloader_dir=/opt/preloader

Настройка собственного прелоадера

При необходимости, для LL HLS может быть настроен собственный прелоадер. Для этого рекомендуется использовать экземпляр WCS сервер, предназначенный для тестирования. Прелоадер создается следующим образом:

1. Установить следующие настройки сервера

Code Block
themeRDark
hls_preloader_enabled=false
ll_hls_create_preloader=true
hls_auto_start=true

и перезапустить WCS

2. Опубликовать RTMP поток из OBS на сервер, используя в качестве источника видео с соотношением сторон 16:9, указав имя потока index 

Code Block
themeRDark
rtmp://wcs:1935/live/index

Image Added

При этом необходимо указать Resize output (source size) 

Image Added

3. По умолчанию, сегменты прелоадера будут записаны в каталог

Code Block
themeRDark
ll_hls_custom_preloader_dir=/usr/local/FlashphonerWebCallServer/custom-preloader/created-segments

Достаточно записать до 20 основных сегментов index0.ts - index20.ts 

4. После остановки публикации переместить сегменты прелоадера в каталог, где будет располагаться прелоадер

Code Block
languagebash
themeRDark
cd /usr/local/FlashphonerWebCallServer/custom-preloader/created-segments
cp index*.ts /opt/preloader/16x9
rm -rf index*.ts

5. Повторить шаги 2-4 с источниками с соотношением сторон 4:3 и 2:1

6. Восстановить настройки сервера и указать расположение прелоадера

Code Block
themeRDark
ll_hls_preloader_dir=/opt/preloader

затем перезапустить сервер

Известные проблемы

1. Невосстанавливаемый фриз HLS потока при воспроизведении в iOS Safari через CDN

...

Решение: обновить WCS до сборки 5.2.863, в которой решена данная проблема

7. При проигрывании LL HLS в браузере Safari, при первом подключении к потоку может пропадать звук

Симптомы: поток играет по LL HLS, но нет звука

Решение: нажать кнопку Pause, затем Play в окне плеера