Fornire contenuti di YouTube in diretta tramite RTMPS

Questo documento spiega come utilizzare RTMPS per trasmettere in streaming dati in tempo reale su YouTube da un codificatore. RTMPS è un normale video stream RTMP (RealTime Messaging Protocol) con tunneling tramite una connessione SSL. Questo documento è destinato ai fornitori di codifica che vogliono aggiungere il supporto di RTMPS ai codificatori che già supportano RTMP.

RTMPS è una buona scelta per la maggior parte dei contenuti ordinari degli utenti, soprattutto se richiede una bassa latenza. Consulta la pagina Confronto del protocollo 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 importazione RTMPS di YouTube valido.
    • Il percorso deve essere un nome di applicazione di YouTube Live RTMP valido.
  • La connessione deve essere stabilita sulla porta 443 sul server di importazione.
  • Lo stream multimediale deve essere inviato con RTMPS, ovvero tramite 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 utilizzata per RTMP. Invia una richiesta Inserts di LiveStreams (POST) per creare un nuovo flusso di importazione. Nella risposta, nel campo cdn.ingestionInfo.rtmpsIngestionAddress è specificato l'URL RTMPS. Se supporti la doppia importazione, l'indirizzo di backup è cdn.ingestionInfo.rtmpsBackupIngestionAddress.

Creazione della connessione in corso...

Utilizza la tua libreria socket preferita per creare una connessione SSL/TLS alla porta 443 sul 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 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 tua libreria client RTMP. Una connessione SSL inizializzata ha la stessa API di una connessione TCP standard, pertanto la libreria RTMP dovrebbe essere in grado di funzionare entrambe con la stessa identità.

Risoluzione dei problemi

Errori di SSL

Se tenti di creare una connessione SSL ma ricevi un certificato non valido, probabilmente stai collegando a un server di YouTube che prevede RTMP. Assicurati che il nome del server utilizzato contenga "rtmps" e la "s".

Se l'URL sembra corretto ma viene comunque visualizzato un errore SSL, è possibile che tu stia eseguendo la connessione alla porta sbagliata. Verifica di collegarti alla porta 443.

Se l'URL e la porta sono corretti, la libreria SSL potrebbe non gestire correttamente il certificato. Cerca i messaggi diagnostici di basso livello sugli errori SSL e assicurati di utilizzare la funzione SNI in handshake.

Timeout della connessione

Se riesci a connetterti al server, ma la libreria RTMP scade senza ricevere una risposta ragionevole, potresti aver configurato una connessione RTMP in testo chiaro a un server di YouTube che prevede RTMPS. Assicurati di creare una connessione SSL, non una connessione TCP semplice.