Ce document explique comment utiliser RTMPS pour diffuser des données en direct sur YouTube à partir d'un encodeur. RTMPS est un flux vidéo RTMP (RealTime Messaging Protocol) standard qui transite par une connexion SSL. Ce document s'adresse aux fournisseurs d'encodeurs qui souhaitent ajouter la compatibilité avec RTMPS aux encodeurs déjà compatibles avec RTMP.
Le protocole RTMPS est un bon choix pour la plupart des contenus utilisateur ordinaires, en particulier s'ils nécessitent une faible latence. Consultez la comparaison des protocoles d'ingestion pour obtenir un aperçu des différents protocoles d'ingestion compatibles avec YouTube Live Streaming.
Conditions requises
Pour envoyer du contenu RTMPS à YouTube En direct, vous devez remplir quelques conditions préalables :
- Chaque partie de l'URL de connexion (
<protocol>://<server>/<path>
) doit être correcte :- Le protocole doit être
rtmps
. - Le serveur doit être un point de terminaison d'ingestion RTMPS YouTube valide.
- Le chemin d'accès doit être un nom d'application RTMP YouTube En direct valide.
- Le protocole doit être
- La connexion doit être établie sur le port 443 du serveur d'ingestion.
- Le flux multimédia doit être envoyé avec RTMPS, c'est-à-dire à l'aide de RTMP sur une connexion SSL.
Obtenir l'URL de connexion
Si votre encodeur utilise déjà l'API YouTube En direct, la procédure pour obtenir une URL d'ingestion RTMPS est semblable à celle pour RTMP. Envoyez une requête LiveStreams insert (POST) pour créer un flux d'ingestion. Dans la réponse, le champ cdn.ingestionInfo.rtmpsIngestionAddress
spécifie l'URL RTMPS. Si vous acceptez la double ingestion, l'adresse de sauvegarde est cdn.ingestionInfo.rtmpsBackupIngestionAddress
.
Créer la connexion
Utilisez la bibliothèque de sockets de votre choix pour créer une connexion SSL/TLS au port 443 du serveur spécifié par l'URL d'ingestion. Étant donné que TLS ne fonctionne qu'avec la couche de transport, le nom d'hôte du serveur n'est pas strictement nécessaire pour établir la connexion. Toutefois, il est requis pour l'authentification auprès de nos serveurs. Assurez-vous donc d'ajouter l'extension SNI (Server Name Indication) à votre handshake SSL et de définir le nom du serveur sur le nom d'hôte du serveur auquel vous vous connectez.
Une fois la connexion SSL établie, utilisez-la comme connexion pour votre bibliothèque cliente RTMP. Une connexion SSL initialisée possède la même API qu'une connexion TCP standard. La bibliothèque RTMP devrait donc pouvoir fonctionner de manière identique avec les deux.
Dépannage
Erreurs SSL
Si vous tentez de créer une connexion SSL, mais que vous obtenez un certificat non valide, vous vous connectez probablement à un serveur YouTube qui attend RTMP. Assurez-vous que le nom du serveur que vous utilisez contient "rtmps" (notez le "s").
Si l'URL est correcte, mais qu'un message d'erreur SSL continue de s'afficher, il est possible que vous vous connectiez au mauvais port. Vérifiez que vous vous connectez au port 443.
Si l'URL et le port sont corrects, il est possible que votre bibliothèque SSL ne gère pas correctement le certificat. Recherchez les messages de diagnostic de bas niveau concernant les échecs SSL et vérifiez que vous utilisez SNI dans le handshake.
Connexion expirée
Si vous parvenez à vous connecter au serveur, mais que votre bibliothèque RTMP expire sans obtenir de réponse pertinente, il est possible que vous ayez configuré une connexion RTMP en texte clair à un serveur YouTube qui attend RTMPS. Assurez-vous de créer une connexion SSL et non une connexion TCP simple.