Ретрансляция потока (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: политика переподключения пуша, выбор дорожек для пуша (какое качество уходит).