Este documento explica como usar o RTMPS para transmitir dados ao vivo no YouTube de um codificador. O RTMPS é um fluxo de vídeo RTMP (RealTime Messaging Protocol) comum encapsulado por um túnel em uma conexão SSL. Este documento é destinado a fornecedores de codificadores que querem adicionar suporte ao RTMPS em codificadores que já são compatíveis com RTMP.
O RTMPS é uma boa opção para a maioria dos conteúdos de usuários comuns, especialmente se eles exigirem baixa latência. Consulte a Comparação de protocolos de ingestão para uma visão geral dos diferentes protocolos de ingestão compatíveis com o YouTube Live Streaming.
Requisitos
Para enviar RTMPS ao YouTube ao vivo, você precisa atender a alguns pré-requisitos:
- Cada parte do URL de conexão (
<protocol>://<server>/<path>
) precisa estar correta:- O protocolo precisa ser
rtmps
. - O servidor precisa ser um endpoint de ingestão RTMPS do YouTube válido.
- O caminho precisa ser um nome de aplicativo RTMP do YouTube Live válido.
- O protocolo precisa ser
- A conexão precisa ser feita com a porta 443 no servidor de ingestão.
- O stream multimídia precisa ser enviado com RTMPS, ou seja, usando RTMP em uma conexão SSL.
Como receber o URL de conexão
Se o codificador já usa a API YouTube Live, o processo para receber
um URL de processamento RTMPS é semelhante ao do RTMP. Envie uma solicitação
LiveStreams insert (POST) para
criar um novo fluxo de ingestão. Na resposta, o campo
cdn.ingestionInfo.rtmpsIngestionAddress
especifica o URL de RTMPS. Se você oferece suporte à ingestão dupla, o endereço de backup é cdn.ingestionInfo.rtmpsBackupIngestionAddress
.
Criar a conexão
Use sua biblioteca de soquetes preferida para criar uma conexão SSL/TLS com a porta 443 no servidor especificado pelo URL de ingestão. Como o TLS funciona apenas com a camada de transporte, o nome do host do servidor não é estritamente necessário para iniciar a conexão. No entanto, ele é necessário para a autenticação com nossos servidores. Adicione a extensão SNI (indicação de nome do servidor) ao handshake SSL e defina o nome do servidor como o nome do host do servidor a que você está se conectando.
Depois que a conexão SSL for estabelecida, use-a como a conexão da biblioteca cliente RTMP. Uma conexão SSL inicializada tem a mesma API que uma conexão TCP padrão. Portanto, a biblioteca RTMP pode trabalhar com as duas de forma idêntica.
Solução de problemas
Erros de SSL
Se você tentar criar uma conexão SSL, mas receber um certificado inválido, provavelmente está se conectando a um servidor do YouTube que espera RTMP. Verifique se o nome do servidor usado tem "rtmps" (observe o "s").
Se o URL parece correto, mas você continua recebendo um erro de SSL, talvez esteja se conectando à porta errada. Confirme se você está se conectando à porta 443.
Se o URL e a porta estiverem corretos, talvez sua biblioteca SSL não esteja processando o certificado corretamente. Procure mensagens de diagnóstico de baixo nível sobre falhas de SSL e verifique se você está usando SNI no handshake.
Tempo limite de conexão esgotado
Se você conseguir se conectar ao servidor, mas a biblioteca RTMP atingir o tempo limite sem receber uma resposta adequada, talvez você tenha configurado uma conexão RTMP de texto não criptografado com um servidor do YouTube que espera RTMPS. Verifique se você está criando uma conexão SSL, não uma conexão TCP simples.