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

Содержание

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

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

Содержание:

Резервные источники видео

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

Под термином "недоступен" подразумевается либо немедленное отключение, либо отсутствие кадров в течение 60 секунд (180 секунд для источников по hls://, playlist://, timeshift://).

Как работает переключение

Если пришлось переключиться на второй источник, то Flussonic Media Server будет периодически перепроверять первый источник на работоспособность.

Замечание. Если от пропавшего источника снова приходят кадры, Flussonic дождется ключевого кадра и только тогда переключится на этот источник. Этим самым мы обеспечиваем качественное переключение без задержек. Поэтому даже при переключении на видео с большим GOP, например, приходящее по HLS, Flussonic обеспечит качественное переключение.

Пример

Поток example_stream имеет два источника. Переключение на второй источник произойдет, если в течение 60 секунд от первого не придет ни одного кадра.

stream example_stream {
  url udp://239.0.0.1:1234 source_timeout=20;
  url tshttp://localhost:80/clock2/mpegts;
}
stream clock1 {
 url fake://fake;
 push udp://239.0.0.1:1234 multicast_loop;
}
stream clock2 {
 url fake://fake;
}

Когда происходит переключение

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

Он не переключит источник при пропадании звука или видео, или при росте количества MPEG-TS CC ошибок.

Настройки переключения источников

source_timeout

Для каждого источника можно указать количество секунд, которое Flussonic Media Server будет ожидать кадры от этого источника. По умолчанию таймаут равен 60 секундам (180 секундам для hls://, playlist://, timeshift://).

Можно задавать source_timeout как для всего потока, так и для каждого из источников. Опция source_timeout всего потока не применяется, если указаны source_timeout для его видео-источников. Пример:

stream backup_timeout { 
    url publish:// source_timeout=10;
    url fake://fake source_timeout=5;
    source_timeout 20;
}

Если переключение происходит на ваш взгляд часто, можно увеличить source_timeout, чтобы не было "перепрыгиваний" с одного источника на другой. Наоборот, чтобы не ждать подолгу переключения, можно уменьшить таймаут.

Значение source_timeout не играет роли при переключении источника вручную.

priority

Для источников можно указать приоритет, в порядке которого Flussonic будет переключаться на источник. По умолчанию, высший приоритет имеет первый источник в списке в настройках, низший приоритет — последний источник в списке. Если для каких-то источников в списке приоритет не указан, то применяется нумерация по умолчанию.

Flussonic проверяет приоритеты после того, как определены все активные источники.

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

stream example_stream {
  url fake://fake priority=2 source_timeout=30;
  url tshttp://10.2.4.5:9000/channel/5 priority=1 source_timeout=10;
}

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

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

Flussonic поддерживает принудительное ручное переключение.

Как переключить источники вручную, не дожидаясь таймаута:

  • В конфигурации потока поменять порядок, в котором указаны источники. Применяется, если не указан priority. Например, переместите источник в верх списка, и Flussonic переключится на него.
  • В конфигурации потока изменить приоритеты переключения Например, поменяйте местами приоритеты, и Flussonic переключится на источник с более высоким приоритетом.
  • Через API явно включить другой источник.

Ещё один способ — отключить источник. Если вы вручную отключите источник, то Flussonic моментально переключится на другой, а source_timeout в этом случае не принимается во внимание.

Как отключить источник вручную:

В UI щелкните поток и перейдите в Input, там щелкните Disable напротив источника, с которого необходимо переключиться на другой.

Запись в архив

Если на потоке настроен архив, то Flussonic Media Server пишет видео из активного источника в архив.

В случае, если последним адресом указан локальный файл:

stream example_stream {
  url tshttp://example.com/origin;
  url file://vod/bunny.mp4;
  dvr /storage;
}

то видео из этого файла также будет писаться в архив.

Чтобы пользователям показывать заглушку вместо потока, но не писать её в архив, надо использовать заглушку

Файл в качестве запасного источника

Можно использовать статическое видео (видеофайлы) в качестве источника данных для отработки отказа.

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

  • Указание файла как источника потока, используя схему url file://:

    stream example_stream {
      url tshttp://10.0.4.5:9000/channel/5;
      url file://vod/bunny.mp4;
    }
    

    Можно использовать как MP4, так и MPEG-TS файлы (.ts).

    Читайте также:

  • Указание файла как заглушки для основного потока через опцию backup. Когда основной поток недоступен, Flussonic будет показывать файл, не переключаясь с недоступного источника. Это полезно в ряде ситуаций. Подробнее

    stream example_stream {
      url tshttp://10.0.4.5:9000/channel/5;
      backup vod/bunny.mp4;
    }
    

Чем 'backup' отличается от 'url file://'

В отличие от переключения источников с опцией url file://<VOD location>, при использовании заглушки технически не происходит переключения на другой источник. Это особенно полезно при публикации видео на Flussonic, чтобы не заставлять публикующего клиента переподключаться при каждом сбое связи.

Файл-заглушка, указанная через backup <VOD location>, по умолчанию не транскодируется и не пишется в архив, если вы не настроили иначе. Файловый источник url file://<VOD location> будет всегда записываться в архив.

Когда стоит применять backup вместо url file://:

  • При плохом соединении с публикующим видео клиентом Flussonic продолжает принимать кадры, не обрывая соединение с клиентом. Это позволяет клиенту не обрывать сеанс публикации и не начинать его снова. При перебоях зрители видят файл-заглушку, и понимают, что трансляция ещё не окончена.

  • Когда все источники работают со сбоями, из-за чего Flussonic часто переключается между ними, лучше показывать файл-заглушку. Если же указать файл как ещё один источник, то зрители увидят его только после того, как истекут таймауты для каждого из сбоящих источников.

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

  • С помощью таймаутов потока и заглушки можно гибко управлять переключением источников в процессе публикации.