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

Contents

Публикация в статический поток

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

Об URL для доступа к публикуемому потоку по разным протоколам см. в разделе о публикации.

Начиная с версии 19.01, используется новый параметр для настройки публикации видео в статический поток. Новый параметр url publish:// автоматически заменяет старый publish_enabled при первом сохранении конфигурации.

Важно! Рекомендуем сделать резервную копию конфигурационного файла Flussonic перед внесением в него изменений в новой версии 19.01. Обновленный файл конфигурации станет несовместим с предыдущими версиями Flussonic.

Как включить публикацию в версии 19.01 и выше:

stream published {
    url publish://;
}

Включение публикации в версиях младше 19.01 — не используйте такой конфиг в новых версиях:

# такая запись больше не используется
stream published {
    publish_enabled;
}

Параметр 'url publish://' предлагает больше возможностей для управления публикуемым потоком. Он позволяет:

Переключение источников, timeout

В предыдущих версиях можно было лишь включать и выключать источник публикации.

Теперь правила переключения источников в соответствии с их приоритетом и состоянием (работает поток или нет) распространяются и на публикуемые источники. Поэтому можно добавить в поток с публикуемым источником другие, альтернативные, источники и переключаться на них по timeout.

Если источник публикации недоступен, по умолчанию Flussonic сразу переключается на следующий источник. Но можно и указывать свой timeout.

Пример с несколькими источниками и timeout источников:

stream published {
    source_timeout 3;
    url publish://;
    url file://vod/stub.mp4;
}

Timeout можно указать и для каждого источника:

stream published {
    url publish:// source_timeout 3;
    url file://vod/stub.mp4 source_timeout 2;
}

Запрещение публикации и событие publish_forbidden

Когда источник url publish:// ниже приоритетом, чем остальные указанные источники потока, то это может значить, что публикация фактически не произойдет. Вы можете запрещать публикацию и вновь разрешать ее, изменив приоритет источников. Это можно сделать и во время трансляции.

Если публикация невозможна, Flussonic генерирует событие publish_forbidden. Например, это событие возникнет при следующей конфигурации, если файл stub.mp4 существует и успешно проигрывается:

stream published {
    source_timeout 3;
    url file://vod/stub.mp4;
    url publish://;
    ...
}

Чтобы разрешить публикацию, поместите источник публикации перед файлом.

Транскодирование публикации

Укажите директиву transcoder в настройках потока для перекодирования входного потока. Flussonic понимает такую запись для RTMP потоков. Для WebRTC директива transcoder будет работать в будущих версиях, однако сейчас можно использовать специфичные для WebRTC опции транскодирования (ниже на этой странице).

stream published {
    source_timeout 3;
    url publish://;
    url file://vod/stub.mp4;
    transcoder vb=2048k size=1280x720 preset=fast ab=128k;
}

Поддержка WebRTC потоков

Для источников WebRTC предусмотрены специфичные опции транскодирования, которые вы можете использовать вместе с 'url publish: //'.

Синтаксис настройки транскодирования для WebRTC потоков:

url publish:// [output_audio=(aac|aac_opus|opus)] [prefer_codec=(h264|vp8|vp9)]

  • output_audio=(aac|aac_opus|opus). Указывает, как транскодировать аудио. Можо получить результирующий поток в AAC, AAC+Opus или Opus. По умолчанию используется aac_opus — входные потоки, которые обычно имеют аудио в Opus, на выходе получают также дорожку в AAC.

  • prefer_codec=(h264|vp8|vp9). Позволяет на старте публикации предложить один из перечисленных видеокодеков. По умолчанию используется кодек H264. Видео в VP8 и VP9 проходит без транскодирования, его поддержка будет реализована в будущем.

Пример:

stream published {
    url publish:// output_audio=aac;
}