Questo documento spiega come utilizzare RTMPS per trasmettere dati in live streaming su YouTube da un codificatore. RTMPS è un normale stream video RTMP (RealTime Messaging Protocol) incapsulato tramite una connessione SSL. Questo documento è destinato ai fornitori di codificatori che vogliono aggiungere il supporto per RTMPS ai codificatori che già supportano RTMP.
RTMPS è una buona scelta per la maggior parte dei contenuti degli utenti comuni, soprattutto se richiede una bassa latenza. Per una panoramica dei diversi protocolli di acquisizione supportati da YouTube Live Streaming , consulta il confronto tra i protocolli di acquisizione.
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 acquisizione 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 stabilita alla porta 443 sul server di acquisizione.
- Lo stream multimediale deve essere inviato con RTMPS, ovvero utilizzando RTMP su una connessione SSL.
Recuperare l'URL di connessione
Se il tuo codificatore utilizza già l'API YouTube Live, la procedura per ottenere un URL di acquisizione RTMPS è simile a quella per RTMP. Invia una richiesta di inserimento
LiveStreams (POST) per creare un nuovo stream di acquisizione. Nella risposta, il
cdn.ingestionInfo.rtmpsIngestionAddress
campo specifica l'URL RTMPS. Se supporti la doppia acquisizione, l'indirizzo di backup
è cdn.ingestionInfo.rtmpsBackupIngestionAddress.
Creare la connessione
Utilizza la libreria di socket che preferisci per creare una connessione SSL/TLS alla porta 443 sul server specificato dall'URL di acquisizione. 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 quindi di aggiungere l'estensione SNI (Server Name Indication) all'handshake SSL e di impostare 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 sembra corretto, ma continui a ricevere un errore SSL, potresti connetterti alla porta sbagliata. Verifica di connetterti alla porta 443.
Se l'URL e la porta sono corretti, la libreria SSL potrebbe non gestire correttamente il certificato. Cerca messaggi di diagnostica di basso livello relativi agli errori SSL e verifica di utilizzare SNI nell'handshake.
Timeout della connessione
Se riesci a connetterti al server, ma la libreria RTMP va in timeout 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 connessione TCP semplice.