Публикация RTMP¶
media.publish.rtmp
Источник сам подключается к Sapsan и передаёт стрим. Это публикация; клиентский захват с удалённого сервера относится к media.ingest.
Настройка¶
В консоли откройте стрим, добавьте явный вход Publish в нужную позицию списка и задайте ключ в его карточке. Доступны ручной ввод и кнопка Перегенерировать ключ. Формат — не менее 5 латинских букв, цифр или ._-. Ключ хранится в inputs[index].publish.rtmp_streamkey; настройка ключа сама не добавляет и не перемещает входы. Верхней границы длины нет. Перегенерация создаёт случайный ключ из 10 символов.
Поле скрывает ключ. Для настройки кодировщика используйте кнопку копирования; глазок позволяет временно показать значение.
listeners:
rtmp:
- port: 1935
streams:
- name: studio
inputs:
- publish:
rtmp_streamkey: Abc012._-Z
В OBS задайте сервер rtmp://server:1935 и ключ Abc012._-Z. В API central используйте PATCH /central/api-v4/streams/configs/studio с телом {"inputs":[{"publish":{"rtmp_streamkey":"Abc012._-Z"}}]}. Массив inputs заменяется целиком: при наличии других входов передавайте весь список в нужном порядке со всеми его настройками и секретами.
Если выше publish расположен работающий источник, RTMP- или SRT-кодер принимается как резерв. Возврат основного источника через чистое окно сохраняет кодер подключённым резервом. Второму кодеру отказывают, даже пока первый в резерве или ещё не передаёт пригодных кадров. При переходе на видеопубликацию сервер ждёт следующий ключевой кадр; для audio-only — пригодный аудиокадр. Действуют обычные таймауты источника и транспорта.
Аутентификация¶
Ключ разрешает RTMP-публикацию в единственный явный publish-вход. Без ключа, включая publish: {}, RTMP запрещён; имя стрима не заменяет секрет. Central атомарно проверяет уникальность ключа по текущему конфигу всего кластера, включая выключенные стримы. История использованных ключей не хранится. Второй publish-вход и publish внутри MBR запрещены валидацией.
После применения замены или очистки ключа сервер разрывает текущую RTMP-публикацию и запрещает подключения по прежнему ключу. Очистка rtmp_streamkey: null оставляет publish-вход. SRT-публикация при смене RTMP-ключа сохраняется; при неизменном ключе прочие правки конфига не разрывают RTMP-соединение.
Транспорт¶
RTMP через TCP. Отправитель подключается к общему RTMP-листенеру сервера.
Поддерживаемые кодеки¶
- H.264
- HEVC (Enhanced RTMP,
hvc1) - AV1 (Enhanced RTMP,
av01) - AAC
- MP3
RTMP переносит сообщения FLV; Enhanced RTMP задаёт FourCC видеокодека. Списки относятся к приёму и передаче сжатых кадров в тракт. AV1 требует Enhanced RTMP с av01; одной настройки AV1 в отправителе без этой упаковки недостаточно. MP3 принимается как аудио FLV, отдельно от AAC.
Поведение при ошибках¶
Одновременно стрим принимает одну активную публикацию. При завершении соединения источник становится недоступным, и применяются общие правила резервирования. Повторное подключение инициирует отправитель.
Что дальше¶