Skip to content

Ретрансляция потока (push)

Sapsan может активно отправлять поток дальше: на CDN и стриминговые площадки по RTMP, на другой сервер по SRT или в сеть по UDP (мультикаст/юникаст). У потока может быть несколько пушей одновременно.

Настройка

Каждый пуш имеет уникальное имя и ровно один протокол:

streams:
  tv1:
    inputs:
    - udp: {host: 239.0.0.1, port: 5000}
    pushes:
    - name: youtube
      rtmp:
        url: rtmp://a.rtmp.youtube.com/live2/xxxx-xxxx
    - name: backup-dc
      srt:
        host: 203.0.113.10
        port: 9000
        passphrase: verysecretpass
    - name: local-multicast
      udp:
        host: 239.1.1.1
        port: 5500
Протокол Параметры
rtmp url, connect_timeout_ms
srt host, port, passphrase, stream_id, таймауты
udp host, port — MPEG-TS в мультикаст или юникаст

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

  • RTMP-пуш умеет H264+AAC, HEVC и AV1 (enhanced RTMP), потоки только с аудио; таймстемпы при пуше начинаются с нуля, как ждут CDN.
  • Ошибки пуша различаются и видны в статусе: отказ соединения, таймаут соединения, отказ публикации (NetStream.Publish.BadName — ключ занят или неверен), зависший сервер (таймаут записи кадров).
  • SRT-пуш при несовпадении passphrase получает отказ рукопожатия; молчание приемника (нет ACK) фиксируется как peer timeout.

Note

TODO: политика переподключения пуша, выбор дорожек для пуша (какое качество уходит).

Что дальше