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 transmite a través de una conexión SSL. Este documento está destinado a los proveedores de codificadores que desean agregar compatibilidad con RTMPS a los codificadores que ya admiten RTMP.
RTMPS es una buena opción para la mayoría del contenido de usuarios habitual, en especial si requiere baja latencia. Consulta la comparación de protocolos de transferencia para obtener una descripción general de los diferentes protocolos de transferencia que admite la transmisión en vivo de YouTube.
Requisitos
Enviar RTMPS a YouTube en vivo tiene 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 RTMPS de YouTube válido.
- La ruta de acceso debe ser un nombre de aplicación RTMP de YouTube en vivo válido.
- El protocolo debe ser
- La conexión debe realizarse al puerto 443 en el 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 de 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
cdn.ingestionInfo.rtmpsIngestionAddress
campo especifica la URL de RTMPS. Si admites la transferencia doble, la dirección de copia de seguridad
es cdn.ingestionInfo.rtmpsBackupIngestionAddress.
Cómo crear la conexión
Usa la biblioteca de sockets que prefieras para crear una conexión SSL/TLS al puerto 443 en el servidor que especifica la URL de transferencia. Como 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, es necesario para la autenticación con nuestros servidores. Por lo tanto, asegúrate de agregar la extensión SNI (indicación de nombre del servidor) al protocolo de enlace SSL y establece 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 conexión para tu biblioteca cliente RTMP. Una conexión SSL inicializada tiene la misma API que una conexión TCP estándar, por lo que la biblioteca 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 usas tenga "rtmps" (observa 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 fallas 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 RTMP agota el tiempo de espera sin obtener una respuesta adecuada, 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.