Questo documento spiega come utilizzare RTMPS per trasmettere in streaming dati live su YouTube da un codificatore. RTMPS è un normale flusso video RTMP (RealTime Messaging Protocol) tunnelizzato tramite una connessione SSL. Questo documento è destinato ai fornitori di codificatori che vogliono aggiungere il supporto di RTMPS ai codificatori che già supportano RTMP.
RTMPS è una buona scelta per la maggior parte dei contenuti degli utenti comuni, soprattutto se richiedono una bassa latenza. Consulta il confronto tra i protocolli di importazione per una panoramica dei diversi protocolli di importazione supportati da YouTube Live Streaming.
Requisiti
L'invio di RTMPS a YouTube Live prevede alcuni prerequisiti:
- Ogni parte dell'URL di connessione (
<protocol>://<server>/<path>
) deve essere corretta:- Il protocollo deve essere
rtmps
. - Il server deve essere un endpoint di inserimento RTMPS di YouTube valido.
- Il percorso deve essere un nome dell'applicazione RTMP di YouTube Live valido.
- Il protocollo deve essere
- La connessione deve essere effettuata alla porta 443 sul server di importazione.
- Lo stream multimediale deve essere inviato con RTMPS, ovvero utilizzando RTMP su una connessione SSL.
Recuperare l'URL di connessione
Se il codificatore utilizza già l'API YouTube Live, la procedura per ottenere
un URL di importazione RTMPS è simile a quella per RTMP. Invia una richiesta
LiveStreams insert (POST) per
creare un nuovo stream di importazione. Nella risposta, il campo
cdn.ingestionInfo.rtmpsIngestionAddress
specifica l'URL RTMPS. Se supporti l'inserimento doppio, l'indirizzo di backup
è cdn.ingestionInfo.rtmpsBackupIngestionAddress
.
Creazione della connessione
Utilizza la libreria socket che preferisci per creare una connessione SSL/TLS alla porta 443 del server specificato dall'URL di importazione. Poiché TLS funziona solo con il livello di trasporto, il nome host del server non è strettamente necessario per avviare la connessione, ma è necessario per l'autenticazione con i nostri server. Assicurati di aggiungere l'estensione SNI (Server Name Indication) all'handshake SSL e imposta il nome del server sul nome host del server a cui ti stai connettendo.
Una volta stabilita la connessione SSL, utilizzala come connessione per la libreria client RTMP. Una connessione SSL inizializzata ha la stessa API di una connessione TCP standard, quindi la libreria RTMP dovrebbe essere in grado di funzionare con entrambe in modo identico.
Risoluzione dei problemi
Errori di SSL
Se tenti di creare una connessione SSL, ma ricevi un certificato non valido, probabilmente ti stai connettendo a un server YouTube che prevede RTMP. Assicurati che il nome del server che utilizzi contenga "rtmps" (nota la "s").
Se l'URL è corretto, ma continui a ricevere un errore di SSL, è possibile che tu stia effettuando la connessione alla porta sbagliata. Verifica di connetterti alla porta 443.
Se l'URL e la porta sono corretti, la libreria SSL potrebbe non gestire il certificato correttamente. Cerca messaggi diagnostici di basso livello relativi a errori SSL e verifica di utilizzare SNI nell'handshake.
Timeout della connessione
Se riesci a connetterti al server, ma la libreria RTMP scade senza ricevere una risposta sensata, potresti aver configurato una connessione RTMP in testo non crittografato a un server YouTube che prevede RTMPS. Assicurati di creare una connessione SSL, non una semplice connessione TCP.