Протокол RTMP / RTMPS

RTMP (Real-Time Messaging Protocol) доступен в «Perfect Streamer» и на приём (input), и на передачу (output) на базе FFmpeg avformat. Типовые сценарии — публикация телеканала на внешние площадки (YouTube, Facebook и любые RTMP-приёмники) и приём потока с RTMP-сервера. Защищённый вариант RTMPS (RTMP поверх TLS) поддерживается для обоих направлений; в этом случае «Perfect Streamer» выступает TLS-клиентом.

RTMP — single-program-протокол, поэтому input и output RTMP доступны только для SPTS-стримов.

RTMP input (приём)

«Perfect Streamer» подключается как RTMP-клиент к указанному источнику rtmp:// или rtmps:// и забирает поток (режим pull). Принятые элементарные потоки (видео H.264 или HEVC, звук AAC) ремультиплексируются во встроенный MPEG-TS и подаются в pipeline стрима. Режима ожидания входящей публикации (listen / push) нет — приём всегда инициирует сам «Perfect Streamer».

Настройки RTMP input:

  • URL — полный адрес RTMP-сессии, например rtmp://origin.example/live/streamkey. Допускаются схемы rtmp и rtmps.

  • Bind Interface — локальный интерфейс или IP-адрес, с которого устанавливается исходящее соединение. По умолчанию выбирается маршрутом операционной системы.

  • Timeout — таймаут подключения и чтения, от 1 до 120 секунд. По умолчанию 10.

  • TLS Verify — для rtmps проверять сертификат сервера. По умолчанию выключено.

  • Trace — подробный лог для диагностики подключения.

RTMP output (публикация)

«Perfect Streamer» публикует SPTS-поток на внешний RTMP-приёмник: подключается как RTMP-клиент к адресу публикации площадки и передаёт поток (режим publish). RTMP — single-program-формат: публикуется одно видео (H.264 или HEVC) и не более одной звуковой дорожки AAC. Если в источнике несколько дорожек, выбирается по одной видео- и аудиодорожке; лишние и несовместимые (например, не-AAC звук) не передаются. Сузить многодорожечный источник заранее можно фильтрами PID Accept / PID Reject (см. «Фильтрация и модификация MPEG-TS»).

Видео HEVC публикуется через Enhanced RTMP — включено опцией Allow HEVC. Если приёмная площадка не поддерживает HEVC, отключите опцию: тогда публикуется только H.264.

Перед началом публикации поток анализируется. Если совместимого видео нет, публикация не выполняется. Результат анализа доступен в статистике потока: признак возможности публикации, выбранные кодеки видео и звука, перечень отброшенных дорожек и состояние соединения.

Настройки RTMP output:

  • URL — адрес публикации площадки, например rtmp://a.rtmp.youtube.com/live2/<stream-key>. Допускаются схемы rtmp и rtmps.

  • Bind Interface — локальный интерфейс или IP-адрес исходящего соединения. По умолчанию — маршрут операционной системы.

  • Timeout — таймаут подключения и передачи, от 1 до 120 секунд. По умолчанию 10.

  • Allow HEVC — разрешить публикацию видео HEVC через Enhanced RTMP. По умолчанию включено; при выключении передаётся только H.264.

  • TLS Verify — для rtmps проверять сертификат сервера. По умолчанию выключено.

  • Trace — подробный лог для диагностики публикации.

Примеры адресов публикации:

  • YouTube — rtmp://a.rtmp.youtube.com/live2/<stream-key>

  • Facebook — rtmps://live-api-s.facebook.com:443/rtmp/<stream-key>