В этом документе рассказывается, как использовать RTMPS для трансляции данных на YouTube с помощью видеокодера. RTMPS – это обычный видеопоток RTMP (RealTime Messaging Protocol), передаваемый через SSL-соединение. Этот документ предназначен для поставщиков видеокодеров, которые хотят добавить поддержку RTMPS в видеокодеры, уже поддерживающие RTMP.
RTMPS – хороший выбор для большинства обычного пользовательского контента, особенно если требуется низкая задержка. В статье Сравнение протоколов передачи данных вы найдете обзор различных протоколов передачи данных, которые поддерживаются в YouTube Live Streaming.
Требования
Для отправки потока по протоколу RTMPS в YouTube Live необходимо выполнить несколько предварительных условий:
- Каждая часть URL подключения (
<protocol>://<server>/<path>) должна быть указана правильно:- Протокол должен быть
rtmps. - Сервер должен быть действительной конечной точкой приема RTMPS на YouTube.
- Путь должен быть действительным названием приложения RTMP для YouTube Live.
- Протокол должен быть
- Подключение должно быть установлено к порту 443 на сервере приема.
- Мультимедийный поток должен передаваться по протоколу RTMPS, то есть с использованием RTMP через SSL-соединение.
Как получить URL подключения
Если ваш видеокодер уже использует YouTube Live API, то процесс получения URL сервера RTMPS аналогичен процессу для RTMP. Отправьте запрос LiveStreams insert (POST), чтобы создать новый поток передачи данных. В ответе поле cdn.ingestionInfo.rtmpsIngestionAddress содержит URL RTMPS. Если вы поддерживаете двойную загрузку, резервный адрес – cdn.ingestionInfo.rtmpsBackupIngestionAddress.
Создание подключения
Используйте предпочитаемую библиотеку сокетов, чтобы создать подключение SSL/TLS к порту 443 на сервере, указанном в URL загрузки. Поскольку протокол TLS работает только на транспортном уровне, имя хоста сервера не является обязательным для установления соединения, но оно необходимо для аутентификации на наших серверах. Поэтому обязательно добавьте расширение SNI (Server Name Indication) в рукопожатие SSL и укажите имя хоста сервера, к которому вы подключаетесь.
После установки SSL-соединения используйте его для клиентской библиотеки RTMP. Инициализированное SSL-подключение имеет тот же API, что и стандартное TCP-подключение, поэтому библиотека RTMP должна работать с ними одинаково.
Устранение неполадок
Ошибки SSL
Если вы пытаетесь установить SSL-соединение, но получаете недействительный сертификат, то, скорее всего, вы подключаетесь к серверу YouTube, который ожидает RTMP. Убедитесь, что в названии сервера, который вы используете, есть "rtmps" (обратите внимание на букву "s").
Если вы ввели правильный URL, но неполадки с SSL не исчезли, возможно, вы подключаетесь к неправильному порту. Убедитесь, что вы подключаетесь к порту 443.
Если URL и порт указаны правильно, возможно, библиотека SSL неправильно обрабатывает сертификат. Найдите диагностические сообщения низкого уровня об ошибках SSL и убедитесь, что при установлении соединения используется SNI.
Превышено время ожидания подключения
Если вы можете подключиться к серверу, но библиотека RTMP не получает ответа, возможно, вы настроили подключение RTMP к серверу YouTube, который ожидает RTMPS. Убедитесь, что вы создаете подключение SSL, а не обычное подключение TCP.