M4F / M4S / M4F2¶
media.ingest.m4f
Описание¶
Поддерживаются старые протоколы M4F/M4S и новый M4F2 для приёма с других серверов Flussonic. M4F2 позволяет работать с дорожками независимо: передавать нужные дорожки и сокращать межсерверный трафик. Временная шкала и состав дорожек сохраняются при передаче.
Настройка¶
Настройка выполняется через API central. Фрагмент конфигурации стрима:
streams:
- name: source1
inputs:
- m4f2:
url: m4f2://origin.example.com/studio?token=ACCESS_TOKEN
Параметры¶
| Параметр | Описание |
|---|---|
m4f.url, m4s.url, m4f2.url |
адрес источника соответствующей версии. |
cluster_key |
cluster_key у старых M4F/M4S задаёт общий ключ кластера. |
via_agent |
via_agent доступен у M4S и M4F2 для подключения через agent://ID. |
Аутентификация¶
M4F/M4S передают заголовки cluster-auth-* с общим ключом. M4F2 передаёт query-параметры URL, включая token, при запросах к источнику.
Варианты транспорта¶
-
M4F — сегментный приём старого формата.
-
M4S — покадровый приём старого формата.
-
M4F2 — каталог и независимые запросы фрагментов/частей дорожек по HTTP;
m4f2s://использует HTTPS.
Поддерживаемые кодеки¶
Legacy M4F/M4S:
- H.264
- HEVC / H.265
- AV1
- VP9
- MPEG-2 Video
- MJPEG / JPEG
- JPEG 2000
- AAC
- AC-3
- E-AC-3
- MPEG Audio (Layer II / III)
- Opus
- G.711 A-law / μ-law
- PCM
Это перечень аудио- и видеокадров, которые разборщик legacy M4F/M4S извлекает по именам кодеков в описании дорожек. M4F — собственный контейнер, а не другое имя fMP4 или кодек. Кодек и конфигурация должны быть корректно объявлены источником; приём кадров не означает поддержку каждого кодека в выбранном выходном протоколе или его декодирование.
M4F2: описание дорожек читается из init-сегментов fMP4, а кадры — из отдельных фрагментов и частей. Действует набор кодеков fMP4. VP9, JPEG 2000, MJPEG и сырой PCM из списка legacy M4F/M4S этим путём не поддерживаются. Сохранение исходной временной шкалы и границ фрагментов не расширяет набор поддерживаемых sample entry.
Поведение при ошибках¶
Состояние входа и причина отказа доступны в статистике стрима. При обрыве или отсутствии кадров действует общий механизм повторных подключений и переключения на резерв.
Применение изменений¶
Изменения передаются через API central. При изменении адреса источника или формата захват открывается заново; это может прервать приём на время подключения. После применения проверьте состояние входа и поступление кадров.
Счётчики¶
Ниже — точные имена полей протокольной статистики. counter накапливает события, gauge показывает текущее значение; список включает оба вида. Нулевые поля могут отсутствовать в ответе. API и Prometheus используют разные проекции: весь список не следует ожидать в одном ответе Admin API. Доступ к детализации зависит от лицензии на счётчики.
Общие показатели входа: bytes, frames, errors, warnings. Они суммируют данные протокола, поэтому складывать их с протокольными счётчиками повторно не нужно.
M4f2¶
| Поле | Тип |
|---|---|
version |
gauge |
bytes |
counter |
frames |
counter |
parts |
counter |
fragments |
counter |
fragments_from_parts |
counter |
part_sets_broken |
counter |
Прочее¶
M4F2 не требует передавать все качества видео каждому потребителю. Запросы отдельных дорожек позволяют получать только нужные качества и звуковые дорожки. Перекодирование при такой передаче не требуется.