Publica contenido en vivo de YouTube a través de RTMPS

En este documento, se explica cómo usar RTMPS para transmitir datos en vivo en YouTube desde un codificador. RTMPS es una transmisión de video RTMP (protocolo de mensajería en tiempo real) normal que se canaliza a través de una conexión SSL. Este documento está dirigido a los proveedores de codificadores que desean agregar compatibilidad con RTMPS a los codificadores que ya admiten RTMP.

RTMP es una buena opción para la mayoría del contenido de usuarios comunes, en especial si requiere una latencia baja. Consulta la Comparación de protocolos de transferencia para obtener una descripción general de los diferentes protocolos de transferencia que admite YouTube Live Streaming.

Requisitos

Para enviar transmisiones RTMPS a YouTube en vivo, debes cumplir con algunos requisitos previos:

  • Cada parte de la URL de conexión (<protocol>://<server>/<path>) debe ser correcta:
    • El protocolo debe ser rtmps.
    • El servidor debe ser un extremo de transferencia de RTMP de YouTube válido.
    • La ruta de acceso debe ser un nombre de aplicación RTMP de YouTube en vivo válido.
  • La conexión debe realizarse al puerto 443 del servidor de transferencia.
  • La transmisión multimedia debe enviarse con RTMPS, es decir, con RTMP a través de una conexión SSL.

Cómo obtener la URL de conexión

Si tu codificador ya usa la API de YouTube Live, el proceso para obtener una URL de transferencia RTMPS es similar al de RTMP. Envía una solicitud de inserción (POST) de LiveStreams para crear una nueva transmisión de transferencia. En la respuesta, el campo cdn.ingestionInfo.rtmpsIngestionAddress especifica la URL de RTMPS. Si admites la transferencia doble, la dirección de respaldo es cdn.ingestionInfo.rtmpsBackupIngestionAddress.

Cómo crear la conexión

Usa tu biblioteca de sockets preferida para crear una conexión SSL/TLS al puerto 443 en el servidor que especifica la URL de transferencia. Dado que TLS solo funciona con la capa de transporte, el nombre de host del servidor no es estrictamente necesario para iniciar la conexión. Sin embargo, sí es necesario para la autenticación con nuestros servidores. Por lo tanto, asegúrate de agregar la extensión SNI (indicación del nombre del servidor) a tu protocolo de enlace SSL y configura el nombre del servidor en el nombre de host del servidor al que te conectas.

Una vez que se establezca la conexión SSL, úsala como la conexión para tu biblioteca cliente de RTMP. Una conexión SSL inicializada tiene la misma API que una conexión TCP estándar, por lo que la biblioteca de RTMP debería poder trabajar con ambas de forma idéntica.

Solución de problemas

Errores de SSL

Si intentas crear una conexión SSL, pero obtienes un certificado no válido, es probable que te estés conectando a un servidor de YouTube que espera RTMP. Asegúrate de que el nombre del servidor que uses contenga "rtmps" (ten en cuenta la "s").

Si la URL parece ser correcta, pero recibes un error de SSL igualmente, es posible que te estés conectando al puerto incorrecto. Confirma que te estás conectando al puerto 443.

Si la URL y el puerto son correctos, es posible que tu biblioteca SSL no esté controlando el certificado correctamente. Busca mensajes de diagnóstico de bajo nivel sobre errores de SSL y verifica que estés usando SNI en el protocolo de enlace.

Se ha superado el tiempo de espera de conexión.

Si puedes conectarte al servidor, pero tu biblioteca de RTMP agota el tiempo de espera sin obtener una respuesta útil, es posible que hayas configurado una conexión RTMP de texto simple a un servidor de YouTube que espera RTMPS. Asegúrate de crear una conexión SSL, no una conexión TCP simple.