Skip to content

RTMP

media.push.rtmp

Sapsan отправляет стрим по RTMP, самостоятельно устанавливая исходящее соединение. У стрима может быть несколько именованных пушей.

Настройка

Передайте настройки стрима через central.

Пуши стрима — это отображение «имя пуша — настройка», а не список. Имя уникально в пределах стрима и служит ключом: по нему пуш находят в конфигурации, в статистике и в метриках. Протокол у пуша ровно один.

streams:
  - name: tv1
    inputs:
    - udp: {host: 239.0.0.1, port: 5000}
    pushes:
      delivery:
        rtmp:
          url: rtmp://a.rtmp.youtube.com/live2/xxxx-xxxx
Протокол Параметры
rtmp url, connect_timeout_ms

Имя пуша — это его идентичность. Переименование не переносит ни настройку, ни накопленные счётчики: старый пуш исчезает, новый начинает с нуля.

Возможности и поведение

  • RTMP-пуш умеет H.264, AAC/MP3, HEVC и AV1 (enhanced RTMP), потоки только с аудио; таймстемпы при пуше начинаются с нуля, как ждут CDN.
  • Ошибки пуша различаются и видны в статусе: отказ соединения, таймаут соединения, отказ публикации (NetStream.Publish.BadName — ключ занят или неверен), зависший сервер (таймаут записи кадров).

Переподключение

Собственной политики повторов у пушера нет — его переподнимает стрим. Раз в пять секунд стрим сверяет работающие отправки с конфигурацией и заменяет умершего пушера новым; счётчик reconnects считает именно такие замены. Поэтому отправка на недоступный адресат не «сдаётся» и не требует ручного перезапуска: она будет подниматься, пока пуш включён.

Что реконнектом не считается:

  • правка настройки пуша — пушер тоже перезапускается, но это решение оператора, а не отказ канала;
  • выключение и включение (enabled: false) — выключение не удаление: настройка и накопленные счётчики остаются, отправки нет.

Выключение и удаление

Выключенный пуш остаётся в конфигурации со своим именем: статистика показывает его со статусом «выключен», счётчики заморожены на последних значениях, включение продолжает счёт с них же. Удаление ключа удаляет и статистику: счётчики привязаны к имени.

Мониторинг

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

Транспорт

RTMP через TCP; Sapsan устанавливает исходящее соединение с адресом url.

Поддерживаемые кодеки

  • H.264
  • HEVC (Enhanced RTMP)
  • AV1 (Enhanced RTMP)
  • AAC
  • MP3

Пуш упаковывает кодированные дорожки в FLV и не перекодирует их. Для HEVC и AV1 приёмник должен поддерживать Enhanced RTMP; наличие поддержки H.264/AAC этого не гарантирует.