Skip to content

Публикация RTMP по streamkey

Подготовьте эфир в Agora, задайте ему ключ публикации и передайте этот ключ оператору кодировщика. Кодировщик отправляет видео в заранее созданный эфир; адрес сервера и ключ указываются отдельно.

Порт приёма

Откройте Кластер → Стримеры, выберите принимающий стример и перейдите на вкладку Сервер. В разделе портов у rtmp должен быть указан порт приёма, например 1935. Если поле пустое, добавьте порт и сохраните настройки. Разрешите кодировщику подключаться к этому TCP-порту.

Порт RTMP на принимающем стримере

На однопроцессной установке используйте адрес машины Agora. В кластере кодировщик подключается к стримеру, на котором размещён приём эфира; назначение видно на вкладке Лейаут карточки стрима.

Эфир и ключ

  1. В разделе Стримы создайте эфир townhall-rtmp или откройте существующий.
  2. Откройте Источники и выберите протокол Publish в строке источника. При добавлении публикации к существующим источникам нажмите + Добавить источник.
  3. В блоке Публикация RTMP нажмите Перегенерировать ключ. Можно ввести свой ключ: не менее 5 латинских букв, цифр или символов ._-. Верхней границы длины нет. Перегенерация создаёт случайный ключ из 10 символов.
  4. Нажмите Сохранить, затем нажмите кнопку копирования справа от поля Ключ стрима.

Ключ RTMP в явном входе Publish

Ключ скрыт по умолчанию. Справа от поля расположены кнопки:

  • Глазок — показать или скрыть ключ; после ухода с поля ключ снова скрывается.
  • Перегенерировать ключ — создать новый случайный ключ. Чтобы применить его, сохраните настройки.
  • Скопировать значение — скопировать настоящий ключ без показа на экране.
  • Удалить ключ — очистить ключ, сохранив вход Publish. Чтобы отключить RTMP-публикацию, сохраните настройки.

Ключ должен быть уникальным во всей установке, включая выключенные стримы. При совпадении сервер отклонит сохранение и покажет ошибку у поля. У эфира может быть только один вход Publish; внутри MBR такой вход не поддерживается. Имя townhall-rtmp служит для управления эфиром, а кодировщику передаётся ключ.

Настройка кодировщика

OBS

В OBS выберите подключение к своему RTMP-серверу. Заполните адрес сервера и ключ раздельно:

Поле Значение
Сервер rtmp://agora.example.org:1935
Ключ потока Значение Ключ стрима, сохранённое в Agora

Замените agora.example.org адресом принимающего стримера, а 1935 — настроенным портом. Путь приложения в адресе сервера не требуется. Логин и пароль администратора Agora в кодировщике не используются: публикацию разрешает streamkey.

Для этой инструкции выберите видео H.264 и звук AAC, затем запустите трансляцию в кодировщике.

FFmpeg

В FFmpeg можно отправить тестовую таблицу со звуковым тоном без входного файла. Нужна сборка с libx264. Замените Abc012._-Z сохранённым в Agora ключом и укажите адрес принимающего стримера:

RTMP_STREAM_KEY='Abc012._-Z'
ffmpeg -hide_banner \
  -re -f lavfi -i 'testsrc2=size=1280x720:rate=25' \
  -f lavfi -i 'sine=frequency=440:sample_rate=48000' \
  -c:v libx264 -preset ultrafast -pix_fmt yuv420p -b:v 1800k -g 50 \
  -c:a aac -b:a 128k \
  -f flv -rtmp_app '' -rtmp_playpath "$RTMP_STREAM_KEY" \
  'rtmp://agora.example.org:1935'

Ключ передаётся отдельно через -rtmp_playpath; -rtmp_app '' задаёт пустое имя приложения. Путь /live не требуется. Для остановки публикации нажмите Ctrl+C.

Проверка приёма

Вернитесь на вкладку Источники. У входа Publish появится рабочее состояние с параметрами принятых дорожек. Для этой настройки это видео H.264 и звук AAC.

Agora принимает настоящую RTMP-публикацию

Если перед Publish расположен работающий основной источник, кодировщик остаётся подключённым резервом. При пропаже основного источника видео начнётся со следующего ключевого кадра. Возврат основного через чистое окно сохраняет резервное соединение.

Замена и отключение ключа

Чтобы сменить кодировщик, остановите прежнюю публикацию и подключите новый кодировщик с тем же ключом. Второму одновременному кодировщику сервер отказывает, даже когда первый находится в резерве.

Чтобы отозвать прежний ключ, сгенерируйте новый или очистите поле и сохраните настройки. После применения изменения принимающим стримером текущая RTMP-публикация разорвётся. Вход Publish остаётся; смена RTMP-ключа не разрывает SRT-публикацию. Остальные настройки при неизменном ключе RTMP-соединение не разрывают.