Документация Flussonic Media Server

Contents

VOD — вещание файлов

Содержание:

Контейнеры и кодеки

Flussonic Media Server умеет раздавать видео из файлов в контейнерах MP4 с видео кодеками H.264, H.265 (HEVC), VP6 и аудио кодеками AAC, MP3, AC3, PCMA, PCMU.

Контейнер Видео Аудио
MP4 (.mp4, .f4v, .mov, .m4v, .mp4a, .3gp, .3g2) H.264, H.265 MP3, AAC (все профили)

Создание VOD-локации

Для того, чтобы транслировать файлы, например, из каталога /movies, необходимо выбрать произвольное, неиспользуемое имя для префикса и вписать следующую строчку в конфигурационный файл /etc/flussonic/flussonic.conf:

file vod {
  path /movies;
}

Здесь vod — префикс месторасположения файлов, или VOD-локация.

Настроить вещание файлов можно и через веб-интерфейс. Создайте VOD-локацию в списке на странице Media:

Теперь файлы будут отдаваться по префиксу vod по протоколам HLS, DASH, HDS, RTMP, RTSP.

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

Управление файлами через веб-интерфейс

В Flussonic Media Server встроен полноценный менеджер файлов, позволяющий загружать и просматривать файлы как на локальном диске, так и в облачном хранилище.

После добавления файлового префикса в конфигурационном файле или через веб-интерфейс надо перейти во вкладку VOD:

Создайте поддиректории:

После того как вы выбрали нужную директорию, залейте в нее файлы:

Кликнув на файл, можно просмотреть его из этого интерфейса.

При наведении мышки на его имя появляется возможность удалить файл.

Как вставить плеер на сайт

В Flussonic Media Server есть специальная страница — embed.html, которая предназначена для вставки видео на сайт или просмотра видео через браузер. Она доступна по ссылке:

http://HOSTNAME/vod/bunny.mp4/embed.html

Страница автоматически определяет браузер и выбирает поддерживаемый протокол. Для большинства устройств на сегодня — HLS.

Подробнее в статье «Вставка видео на сайт (embed.html»).

Как проиграть файл по разным протоколам

Для того, чтобы проиграть файл лежащий на диске по пути /movies/elementary/s01e02.mp4 надо указать следующие источники для плееров:

HDS (StrobeMediaPlayback или другие OSMF-плееры)

http://HOSTNAME:8080/vod/elementary/s01e02.mp4/manifest.f4m

HLS (iOS, Android, STB)

http://HOSTNAME:8080/vod/elementary/s01e02.mp4/index.m3u8

RTMP (Jwplayer, Flowplayer, Uppod)

application: rtmp://HOSTNAME/vod, path: elementary/s01e02.mp4

Как проиграть файл из админки

Необходимо выбрать файл в списке файлов конкретного VOD:

После можно дополнительно выбрать нужный протокол и нажать click to play.

Мультикаталоговая раздача

Иногда при большом трафике стриминга принимается решение монтировать жесткие диски в системе не в RAID, а в режиме JBOD. То есть каждый жесткий диск виден в системе отдельно и монтируется в отдельный каталог.

Можно указать Flussonic Media Server одну файловую зону на несколько каталогов. Это даст возможность перемещать файл между устройствами без изменения URL-адреса:

file vod {
  path /mount/disk1;
  path /mount/disk2
}

Настройки VOD

Эти настройки можно указывать внутри директивы file, которая хранит настройки вещания файлов. Мы называем их опции.

file

file vod {
  path /storage;
}
Конфигурации локации для проигрывания файлов.

cache

cache /ssd misses=5 2d 40G; Все запросы к файлам будут кешироваться в папке /ssd сроком не более чем 2 дня и с лимитом в 40G. Кеширование включится, если к одному файлу было более 5 некешированных запросов.

domain

domain host.ru; Указание доменов, на которых можно проигрывать это видео. Не работает для клиентов, которые не передают Referer.

domains

domains host1.ru *.host1.ru; Указание доменов, на которых можно проигрывать это видео. Не работает для клиентов, которые не передают Referer.

path

path /storage;

path s3://key:secret@s3.amazonaws.com/bucket/;
Путь для поиска файлов. Можно указать несколько путей.

read_queue

read_queue 100; Количество одновременных обращений к диску для этого префикса.

download

download; Эта опция разрешает скачивание файла и обращение к нему с Range запросами.

max_readers

max_readers 10; Опция настраивает максимальное количество одновременных дисковых запросов ко всему префиксу.

thumbnails

thumbnails offset=10; Опция включает генерацию скриншотов к файлам с опциональным указанием секунды видео.

auto_mbr (новое в версии 19.02)

auto_mbr; Включает автоматическое создание мультибитрейтного HLS плейлиста из нескольких файлов с разным битрейтом.

Мультиязыковой стриминг

Протоколы HLS и HDS дают возможность переключать языки. Flussonic Media Server включит эту опцию автоматически, если вы просто добавить дополнительные языковые дорожки в mp4 файл.

Для включения субтитров, надо также просто добавить субтитры в формате tx3g в виде дорожек в MP4 файл.

Экспорт трека с субтитрами в виде SRT

Flussonic Media Server может отдать субтитровый трек в mp4 в виде SRT, необходимом для некоторых flash-плееров:

http://192.168.2.3:8080/vod/video.mp4/track-t1.srt

Адаптивный стриминг (мультибитрейт)

Для того, чтобы обеспечить комфортный просмотр пользователям, подключенным на разных скоростях к интернету, можно воспользоваться адаптивным стримингом. Flussonic поддерживает два способа:

  • Использование нескольких файлов с одинаковым содержимым, но с разными качеством.

    Flussonic автоматически создает один мультибитрейтный плейлист для воспроизведения этих файлов как одного ресурса. Как это настроить

  • Использование одного файла, содержащего дорожки разного качества.

    Для этого надо создать мультибитрейтный MP4 файл и запросить для него манифест для проигрывания. Дальнейшее Flussonic Media Server сделает сам. В разделе про подготовку файлов подробнее описано, как делать мультибитрейтные файлы.

Подготовка файла к вещанию (транскодирование)

Ниже приведен принципиальный пример, как сделать мультибитрейтный файл с помощью ffmpeg:

ffmpeg -i bunny.mp4 \
-map 0:0 -c:v copy \
-map 0:0 -c:v libx264 -b:v 150k  \
-map 0:0 -c:v libx264 -b:v 100k \
-map 0:1 -c:v libx264 -b:v 50k \
-map 0:1 -c:a copy \
-map 0:1 -c:a copy \
-y out.mp4

Более подробно процесс описан в разделе «Подготовка к вещанию».

Рестриминг VOD

Библиотека VOD имеет большой объём, и её копирование между серверами дорого по ресурсам, но Flussonic может выполнять рестриминг видеофайлов на соседние серверы Flussonic. Это сэкономит не только время, но и место, требуемое для хранения VOD контента. Сэкономленные ресурсы можно использовать для включения кэширования VOD контента, что увеличит производительность VOD-рестримера.

Пример конфигурации VOD-каталога:

Основной сервер VOD

file vod {
  path priv;
  download;
}

Рестример VOD

file vod {
  path http://FLUSSONIC-SOURCE/vod;
  cache /mount/cache 500G misses=2;
}