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

Contents

Каким должен быть источник

Формат

Flussonic Media Server поддерживает проигрывание только определенных кодеков и контейнеров. Все остальные проигрываться либо не будут вообще, либо их проигрывание будет сопряжено с проблемами. Например, с ошибками в DVR.

На Википедии можно прочитать точное описание, что такое кодек и контейнер. Вкратце, кодек - это алгоритм сжатия видео/аудио, а контейнер - это формат потока или файла, в котором эти закодированные данные будут передаваться.

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

Список поддерживаемых форматов отличается для потоков (live) и файлов (vod).

Формат потоков

Контейнер Кодеки
HLS h264, h265(hevc), aac, mp3
HDS h264, aac, mp3
RTMP, FLV h264, aac, mp3, pcmu (G.711 u-law)
RTSP h264, h265, aac, pcma (G.711 A-law), pcmu (G.711 u-law)
MPEG-TS (HTTP, UDP) h264, aac, eac3, mp3, mpeg2-audio, mpeg2-video, h265 (hevc)

Формат файлов

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

Публикация из браузера

Иногда есть необходимость опубликовать видео из браузера на Flussonic Media Server.

Flussonic может принимать видео по протоколу WebRTC из любого современного браузера без Flash плагина.

Подробнее про WebRTC можно прочитать в нашей документации.

Транскодирование для получения правильного формата

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

Например, видео приходит со спутника.

  • Если оно приходит в MPEG-TS+h264/aac, то это самый лучший случай. Видео будет работать без транскодирования и тратить мало ресурсов сервера.
  • Если вместо стандартного h264 используется mpeg2video, то нужно включить транскодирование видео (в опции vb должен быть указан конкретный битрейт, например: vb=1024k). Транскодирование видео — очень ресурсоёмкая операция и даже очень мощные сервера не могут транскодировать более 20 потоков одновременно.
  • Если видео уже в h264, а аудио вместо aac использует mpeg2audio, то можно транскодировать только аудио. Это значительно сэкономит ресурсы сервера. Для этого в опциях транскодера нужно указать vb=copy.

Подробнее о ресурсах, необходимых для работы Flussonic Media Server, можно прочитать в отдельной статье.

Frames per Second (FPS)

Источник видео должен выдавать не менее 10 кадров в секунду. Если FPS ниже, то Flussonic Media Server считает такой источник нерабочим. Лучше всего настроить источник на FPS=15 и выше.

Некоторые видеокамеры, настроенные на слишком маленький FPS могут отдавать поток рывками длиной в пару секунд. Складывается первое впечатление, что не хватает скорости интернета и нужно настраивать кэш или что-то такое,. На самом деле, достаточно увеличить FPS в настройках камеры.

Нужно учесть, что повышение качества видео повышает нагрузку на камеру. Дешевые китайские камеры на высоких настройках могут просто перегреться и зависнуть. Или просто не смогут поддерживать хороший стабильный поток. Для таких слабых камер нужно поддерживать баланс между качеством и работоспособностью. Например, стоит сократить количество одновременных подключений к камере до 1 (т.е. чтобы видео с камеры получал только Flussonic Media Server и больше никто).