Versions Compared

Key

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

...

При подключении первого HLS-подписчика к потоку, в особенности к потоку из CDN, необходимо определенное время, чтобы началась нарезка потока на HLS-сегменты, и был сформирован плейлист. В результате, браузер Safari на устройствах iOS может не подключиться к потоку по HLS с первой попытки. Чтобы подключение всегда проходило успешно, в сборке 5.2.371 добавлено воспроизведение прелоадера. Прелоадер по умолчанию выглядит следующим образом

В сборке 5.2.408 прелоадеры разделены по соотношениям сторон картинки потока: 16:9, 4:3, 2:1

Сегменты прелоадера по умолчанию записываются в каталог /usr/local/FlashphonerWebCallserver/hls/.preloader при запуске сервера

Code Block
themeRDark
ls /tree /usr/local/FlashphonerWebCallServer/hls/.preloader
/usr/local/FlashphonerWebCallserverFlashphonerWebCallServer/hls/.preloader
-rw-r--r-- 1 root root 51888 Oct 13 04:47 ├── 16x9
│   ├── index0.ts
-rw-r--r-- 1 root root 52828 Oct 13 04:47 index10.ts
-rw-r--r-- 1 root root 54332 Oct 13 04:47 index11.ts
-rw-r--r-- 1 root root 53392 Oct 13 04:47 index12.ts
-rw-r--r-- 1 root root 52828 Oct 13 04:47 index13.ts
-rw-r--r-- 1 root root 52828 Oct 13 04:47 index14.ts
-rw-r--r-- 1 root root 53956 Oct 13 04:47 index15.ts
-rw-r--r-- 1 root root 54144 Oct 13 04:47 index16.ts
-rw-r--r-- 1 root root 52828 Oct 13 04:47 index17.ts
-rw-r--r-- 1 root root 52640 Oct 13 04:47 index18.ts
-rw-r--r-- 1 root root 53580 Oct 13 04:47 index19.ts
-rw-r--r-- 1 root root 52828 Oct 13 04:47 index1.ts
-rw-r--r-- 1 root root 53580 Oct 13 04:47 index2.ts
-rw-r--r-- 1 root root 54520 Oct 13 04:47 index3.ts
-rw-r--r-- 1 root root 52452 Oct 13 04:47 index4.ts
-rw-r--r-- 1 root root 52640 Oct 13 04:47 index5.ts
-rw-r--r-- 1 root root 53204 Oct 13 04:47 index6.ts
-rw-r--r-- 1 root root 54708 Oct 13 04:47 index7.ts
-rw-r--r-- 1 root root 52828 Oct 13 04:47 index8.ts
-rw-r--r-- 1 root root 52828 Oct 13 04:47 index9.ts

Минимальная длительность одного сегмента прелоадера по умолчанию составляет 2 секунды, и может быть задана в миллисекундах при помощи настройки

Code Block
themeRDark
hls_preloader_time_min=2000

Отключение прелоадера

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

Code Block
themeRDark
hls_preloader_enabled=false

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

Чтобы заменить прелоадер по умолчанию на собственный, необходимо сделать следующее:

1. Выбрать видеоклип (например, логотип)

2. С помощью ffmpeg закодировать видео в H264, добавить к видеоклипу аудиодорожку, задать периодичность ключевых кадров и убрать B-фреймы

Code Block
languagebash
themeRDark
ffmpeg -i clip│   ├── index10.ts
│   ├── index11.ts
│   ├── index12.ts
│   ├── index13.ts
│   ├── index14.ts
│   ├── index15.ts
│   ├── index16.ts
│   ├── index17.ts
│   ├── index18.ts
│   ├── index19.ts
│   ├── index1.ts
│   ├── index2.ts
│   ├── index3.ts
│   ├── index4.ts
│   ├── index5.ts
│   ├── index6.ts
│   ├── index7.ts
│   ├── index8.ts
│   └── index9.ts
├── 2x1
│   ├── index0.ts
│   ├── index10.ts
│   ├── index11.ts
│   ├── index12.ts
│   ├── index13.ts
│   ├── index14.ts
│   ├── index15.ts
│   ├── index16.ts
│   ├── index17.ts
│   ├── index18.ts
│   ├── index19.ts
│   ├── index1.ts
│   ├── index2.ts
│   ├── index3.ts
│   ├── index4.ts
│   ├── index5.ts
│   ├── index6.ts
│   ├── index7.ts
│   ├── index8.ts
│   └── index9.ts
└── 4x3
    ├── index0.ts
    ├── index10.ts
    ├── index11.ts
    ├── index12.ts
    ├── index13.ts
    ├── index14.ts
    ├── index15.ts
    ├── index16.ts
    ├── index17.ts
    ├── index18.ts
    ├── index19.ts
    ├── index1.ts
    ├── index2.ts
    ├── index3.ts
    ├── index4.ts
    ├── index5.ts
    ├── index6.ts
    ├── index7.ts
    ├── index8.ts
    └── index9.ts

Минимальная длительность одного сегмента прелоадера по умолчанию составляет 2 секунды, и может быть задана в миллисекундах при помощи настройки

Code Block
themeRDark
hls_preloader_time_min=2000

Отключение прелоадера

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

Code Block
themeRDark
hls_preloader_enabled=false

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

Чтобы заменить прелоадер по умолчанию на собственный, необходимо сделать следующее:

1. Выбрать видеоклип (например, логотип) в трех соотношениях сторон: 16:9, 4:3, 2:1

2. С помощью ffmpeg закодировать видео в H264, добавить к видеоклипу аудиодорожку, задать периодичность ключевых кадров и убрать B-фреймы

Code Block
languagebash
themeRDark
ffmpeg -i clip16x9.mp4 -f lavfi -i anullsrc=channel_layout=mono:sample_rate=44100 -c:v h264 -g 30 -bf 0 -shortest 16x9/preloader16x9.mp4
ffmpeg -i clip4x3.mp4 -f lavfi -i anullsrc=channel_layout=mono:sample_rate=44100 -c:v h264 -g 30 -bf 0 -shortest 4x3/preloader4x3.mp4
ffmpeg -i clip2x1.mp4 -f lavfi -i anullsrc=channel_layout=mono:sample_rate=44100 -c:v h264 -g 30 -bf 0 -shortest preloader2x1/preloader2x1.mp4

3. Загрузить и установить инструменты для подготовки HLS сегментов с сайта Apple

...

Code Block
languagebash
themeRDark
cd 16x9
mediafilesegmenter -t 2 -B index -start-segments-with-iframe preloaderpreloader16x9.mp4
tar -cvzf preloader.tar.gz index*.ts

Этот шаг необходимо повторить для всех соотношений сторон.

5. На сервере создать каталог для прелоадера

Code Block
languagebash
themeRDark
bash
themeRDark
mkdir /opt/custom_preloader
mkdir /opt/custom_preloader/16x9
mkdir /opt/custom_preloader/4x3
mkdir /opt/custom_preloader/2x1

6. Распаковать прелоадер из архива, подготовленного на шаге 4

Code Block
languagebash
themeRDark
cd /opt/custom_preloader/16x9
tar -xvzf ~/preloaderpreloader16x9.tar.gz

Этот шаг также необходимо повторить для всех соотношений сторон

7. Указать в настройках сервера расположение прелоадера и длительность одного сегмента

Code Block
themeRDark
hls_preloader_time_min=2000
hls_preloader_dir=/opt/custom_preloader

Известные ограничения

...

Управление HLS подписками при помощи REST API

...