Guide complet du RTMP : qu'est-ce que c'est et quand l'utiliser ?
Le protocole de messagerie en temps réel (RTMP) est un format de diffusion en continu très répandu. Il existe depuis de nombreuses années et est devenu un outil essentiel pour les diffuseurs, les opérateurs de réseaux et de nombreux autres secteurs. Cependant, certaines idées fausses sur le RTMP l'ont rendu moins populaire qu'il ne pourrait l'être.
Mais qu'est-ce que le RTMP exactement ? Comment fonctionne-t-il ? Et devriez-vous l'utiliser pour votre prochaine diffusion en direct ?
Vous trouverez plus d'informations à ce sujet ci-dessous.
Qu'est-ce que le RTMP ?
Le RTMP est un protocole réseau ou un système utilisé pour diffuser du contenu multimédia sur l'internet, basé sur la technologie du protocole de contrôle de transmission (TCP).
TCP est l'un des composants de la suite de protocoles internet. L'autre composant important est le protocole internet, également appelé IP.
RTMP est un protocole réseau ou un système utilisé pour diffuser du contenu multimédia sur l'internet.
Ensemble, TCP et IP agissent comme des ponts de communication entre les couches application et réseau. Pensez-y de la manière suivante : la couche application englobe ce avec quoi vous interagissez normalement, comme le navigateur Mozilla Firefox ou toute autre application utilisateur.
Pour que votre navigateur Firefox puisse charger une page web, il doit envoyer une demande au serveur du site web. Lorsqu'il reçoit la demande, le serveur envoie la ressource demandée (c'est-à-dire un flux vidéo, une vidéo préenregistrée sur YouTube ou le code Html de la page web).
Pour maintenir une communication efficace (c'est-à-dire éviter que la correspondance ne soit abandonnée ou retardée), le message doit être décomposé en morceaux plus petits appelés paquets. Cette opération est effectuée du côté de l'expéditeur et, une fois le message reçu, il est réassemblé pour l'utilisateur.
Le TCP est le composant qui décompose le message en paquets ou en éléments plus petits qui peuvent être transmis de manière efficace et efficiente.
La couche IP agit comme un agent de transfert qui détermine les meilleurs itinéraires pour transmettre les paquets sur l'internet.
Le protocole RTMP est utilisé par de nombreux lecteurs multimédias populaires, notamment Adobe Flash Player, VLC Media Player, QuickTime Player et Windows Media Player. Le protocole RTMP est également pris en charge par certains navigateurs web, dont Google Chrome et Mozilla Firefox.
La principale préoccupation de la plupart des utilisateurs d'une solution de diffusion en continu est la manière dont elle fournit le contenu. Si la qualité de la résolution de la diffusion en continu est faible, la plupart des consommateurs n'y trouveront pas leur compte. De même, une solution de diffusion en continu présentant une latence élevée et une mise en mémoire tampon ou un chargement trop long avant la lecture du contenu ne sera pas bien accueillie.
C'est là que le RTMP brille. Depuis son développement, le RTMP garantit une faible latence, une mise en mémoire tampon minimale et l'une des meilleures qualités de résolution de streaming, à condition que la connexion réseau soit suffisamment puissante et rapide.
Un autre avantage du RTMP est sa capacité à prendre en charge des flux massifs de manière simultanée et sans problème majeur.
Cependant, bien qu'il existe depuis de nombreuses années, le RTMP a récemment fait l'objet d'un examen approfondi en raison de l'insécurité du système pour ses utilisateurs.
Voici comment la (les) faille(s) de sécurité est (sont) apparue(s) :
Tout d'abord, le protocole RTMP n'intègre aucun cryptage. Par conséquent, toute communication ou transfert de paquets lorsque le protocole RTMP est utilisé peut être écouté par des groupes non autorisés ou par des attaques de type "man-in-the-middle".
Un autre facteur qui a contribué à la vulnérabilité de la sécurité du RTMP est que son code source est resté longtemps propriétaire. Les logiciels propriétaires (c'est-à-dire les logiciels dont les droits de propriété et de contrôle sont limités à l'entité qui les a développés ou achetés) reçoivent généralement des correctifs de sécurité à intervalles réguliers, mais ce n'est pas suffisant.
De nouvelles vulnérabilités apparaissent fréquemment, et la communauté construite autour des logiciels libres garantit des correctifs de sécurité relativement plus fréquents et de meilleure qualité. C'est ce qui a manqué au RTMP pour améliorer sa position en matière de sécurité.
Variantes RTMP
Les variations de RTMP comprennent les éléments suivants :
- Real-Time Messaging Protocol Server (RTMPS ) - est assez semblable au RTMP, à ceci près qu'il est crypté, c'est-à-dire que les protocoles SSL (secure sockets layer) et TLS (Transport Layer Security) sont activés, et qu'il prend en charge tous les lecteurs ayant Flash player activé. Il est utilisé dans des scénarios où il est vital d'empêcher la falsification ou l'accès non autorisé à des données en transit.
- Encrypted Real-Time Messaging Protocol (RTMPE ) - il s'agit d'un protocole de diffusion en continu très polyvalent qui utilise à la fois le protocole de contrôle de transport (TCP) et le protocole de datagramme d'utilisateur (UDP) pour transmettre des données. RTMPE crypte également toutes les transmissions de données à l'aide du système de cryptage propriétaire d'Adobe afin d'éviter tout accès non autorisé et toute altération.
- Real-Time Messaging Protocol Tunnel (RTMPT) - RTMPT utilise un mécanisme de tunnel pour contourner les pare-feu qui bloquent généralement tout le trafic RTMP. En pratique, le RTMPT exige que le client envoie une requête HTTP modifiée au serveur, qui répond par une transmission HTTP presque similaire. Le client et le serveur utilisent un identifiant de session ; une fois la connexion établie, la transmission des données peut commencer entre les deux.
- Real-Time Media Flow Protocol (RTMFP) - Le RTMFP est une version améliorée du RTMP en ce sens qu'il utilise un format d'encodage différent, l'UDP, pour obtenir une diffusion en continu des médias à haute performance.
Histoire du streaming RTMP
Le Real-Time Messaging Protocol (RTMP) était à l'origine un protocole propriétaire développé par Macromedia pour la diffusion en continu d'audio, de vidéo et de données sur l'internet entre un lecteur Flash et un serveur.
RTMP est aujourd'hui utilisé par de nombreux services en ligne populaires tels que Facebook, Twitch et Twitter pour la diffusion de vidéos en direct.
La première version publique de RTMP date de 2002. En 2009, Adobe a publié une version ouverte de RTMP connue sous le nom d'OpenRTMP. La principale différence entre RTMP et OpenRTMP est qu'avec OpenRTMP, n'importe quel serveur média peut être utilisé au lieu du seul Flash Media Server (FMS).
La spécification RTMP ouverte offre également une plus grande souplesse quant à la manière dont les développeurs peuvent sécuriser ou configurer la fonctionnalité peer-to-peer. Cela a pour but d'encourager l'innovation et la collaboration par le biais de la concurrence et du libre accès entre les développeurs afin de mettre au point la solution RTMP idéale.
Le grand principe
Le RTMP utilise une technique appelée "streaming" pour diffuser le contenu. Cela signifie que les données sont transférées en petits morceaux appelés "chunks", qui sont réassemblés à l'autre extrémité, de sorte que l'utilisateur peut regarder ou écouter le contenu sans attendre de l'avoir complètement téléchargé.
Le fonctionnement du RTMP comporte deux volets : La livraison du premier et du dernier kilomètre.
La diffusion sur le premier kilomètre implique généralement la transmission des médias de l'encodeur au serveur à l'aide du protocole RTMP. La diffusion sur le dernier kilomètre consiste à transmettre le média du serveur à l'appareil de l'utilisateur. Un lecteur Flash ou un outil tout aussi performant est utilisé pour cette deuxième partie. Selon certaines informations, Adobe cesserait de prendre en charge Flash, ce qui mettrait fin à la diffusion sur le dernier kilomètre.
En réponse, l'industrie a adopté le protocole de transfert hypertexte (HTTP), une solution de diffusion en continu plus efficace.
Les variantes de RTMP comme RTMPT utilisent actuellement HTTP pour encapsuler et transmettre les médias.
Comment fonctionne l'ingestion RTMP
C'est probablement l'un des points positifs du RTMP qui lui a permis de perdurer aussi longtemps. À mesure que le monde s ' éloignait de la visualisation des médias sur ordinateur pour se tourner vers la visualisation mobile, le RTMP s'est trouvé confronté à un défi.
D'une part, le RTMP s'appuyait sur le lecteur Flash d'Adobe pour offrir une expérience de diffusion en continu, mais il y avait un léger problème. Les appareils mobiles ne prennent pas en charge le lecteur Adobe Flash ; le RTMP est donc devenu inutile pour les utilisateurs qui souhaitaient bénéficier des mêmes services de diffusion en continu sur leurs appareils mobiles.
En réponse, Apple a développé le protocole HLS pour prendre en charge la fonctionnalité de diffusion en continu sur les appareils mobiles.
Il était raisonnable de s'attendre à ce que le RTMP devienne obsolète. Heureusement, il a survécu avec l'ingestion RTMP, créant sa niche en tant que protocole idéal pour transporter les médias de l'encodeur au serveur.
L'acquisition RTMP donne la priorité au fonctionnement des encodeurs à faible coût et offre généralement aux utilisateurs une diffusion en continu à faible latence.
Il comprend trois éléments principaux :
1. La poignée de main
Lorsqu'un client souhaite se connecter à un serveur RTMP, il doit d'abord établir une poignée de main. Ce processus commence par l'envoi par le client d'une demande de "connexion" au serveur, qui comprend des informations sur le client et le type de connexion qu'il tente d'établir.
Le serveur répond alors par un message "connecté", qui contient des informations sur le serveur et le type de connexion qui a été établi.
Enfin, le client et le serveur échangent des messages pour confirmer qu'ils sont toujours connectés et pour négocier les paramètres nécessaires à la connexion.
2. La connexion
L'objectif principal de la connexion d'acquisition RTMP est de fournir un moyen de diffuser du contenu multimédia d'une source à une destination.
La source médiatique peut être une caméra en direct, une vidéo préenregistrée, du son ou d'autres médias. La destination est généralement un serveur de médias en continu, qui distribue le contenu aux téléspectateurs.
Une connexion d'acquisition RTMP comporte trois éléments :
- L'encodeur convertit le signal vidéo et audio en un format numérique qui peut être transporté sur l'internet.
- Le transport : Il s'agit du support sur lequel le signal codé est envoyé de l'encodeur au serveur ; en général, cela se fait via UDP ou TCP.
- Le serveur reçoit le signal codé et le met à la disposition des téléspectateurs (généralement en l'intégrant dans un format tel que Flash).
3. Le streaming
Lorsqu'un utilisateur diffuse du contenu en continu vers un serveur multimédia, ce dernier doit d'abord encoder le flux vidéo et audio entrant avant de l'envoyer à tous les clients connectés.
Le processus d'encodage et de reformatage de la vidéo et de l'audio dans un format de fichier standard est appelé transcodage. Il s'agit de convertir le signal d'entrée en une forme qui peut être lue sur différents appareils.
Pour en savoir plus sur la diffusion en continu, il existe deux types de diffusion en continu : en direct et à la demande. La diffusion en direct fait référence à la diffusion en temps réel, tandis que la diffusion à la demande permet aux utilisateurs de regarder le contenu à leur convenance.
La diffusion en direct nécessite une connexion constante entre le client et le serveur, ce qui n'est pas le cas de la diffusion à la demande.
RTMP utilise TCP pour maintenir une connexion permanente entre le client et le serveur, ce qui permet une diffusion en continu à faible latence. Cependant, RTMP n'est pas bien adapté à la diffusion en continu à la demande.
Alternatives RTMP pour l'ingestion
SRT et WebRTC sont les principaux concurrents qui peuvent égaler ou dépasser les capacités du RTMP. Voici un bref aperçu de ces deux solutions :
Transport fiable et sécurisé (SRT)
SRT comble les lacunes que RTMP n'a pas pu combler, notamment en maintenant une faible latence même lorsque l'utilisateur est connecté à un réseau relativement peu fiable. Il s'agit donc d'un excellent choix pour la diffusion en direct et à la demande.
Comme il s'agit d'un logiciel libre, les limites de ses capacités sont infinies et il n'y a pas lieu de s'inquiéter d'un retrait du soutien au développement.
Communications en temps réel sur le web (WebRTC)
WebRTC l'emporte avec sa publication basée sur le navigateur. Le protocole WebRTC HTTP Ingest Protocol (WHIP) est également en cours d'élaboration, ce qui signifie pour les utilisateurs qu'ils pourront diffuser en continu à l'aide d'un simple navigateur web au lieu de s'encombrer d'encodeurs comme avec RTMP.
Alternatives RTMP pour les sorties
En tête de liste des alternatives RTMP egress figurent HTTP Live Streaming (HLS), MPEG-DASH et WebRTC.
Voici un bref aperçu des alternatives :
HLS et MPEG-DASH
Les deux sont pratiquement identiques, à ceci près que HLS est propriétaire alors que MPEG-DASH est open-source.
L'avantage de ces deux appareils est qu'ils sont conçus pour offrir une faible latence, une qualité multimédia optimale et qu'ils fonctionnent même avec des connexions réseau peu fiables.
WebRTC est également une alternative intéressante aux solutions de sortie RTMP.
RTMP et Flash sont-ils en train de mourir ?
La réponse courte est : probablement pas. La réponse longue est un peu plus compliquée.
L'augmentation constante de la popularité du HTML5 et la prolifération d'alternatives performantes à Flash peuvent donner l'impression que le RTMP et Flash sont en train de mourir. Mais ce n'est pas le cas.
Flash est sur le déclin depuis un certain temps, perdant une part de marché importante au profit de HTML5 ces dernières années, et sa position autrefois dominante dans le monde de la vidéo est aujourd'hui constamment menacée.
Néanmoins, il est toujours très présent sur le web et est utilisé par de nombreux sites populaires, dont YouTube et Facebook.
Quant au RTMP, il est encore largement utilisé pour la diffusion en continu de contenus audio et vidéo. Cependant, son avenir est moins certain que celui de Flash.
Adobe a annoncé qu'il cesserait de prendre en charge le RTMP en 2020, ce qui pourrait marquer la fin de ce protocole. Néanmoins, il existe de nombreuses alternatives basées sur le RTMP, de sorte qu'il continuera probablement à être utilisé sous une forme ou une autre dans les années à venir.
Alors, faut-il faire du streaming avec RTMP ?
Cela dépend. Découvrez les avantages et les inconvénients de l'utilisation du RTMP.
Pour
- Il est très stable. Comparé à d'autres alternatives sur le marché, il est très peu probable de rencontrer des perturbations ou des temps d'arrêt lors de l'utilisation d'un service compatible RTMP.
- Faible latence et mise en mémoire tampon minimale. RTMP est unique à cet égard, ce qui signifie que les utilisateurs peuvent regarder des vidéos avec une meilleure résolution et que le chargement des médias prend beaucoup moins de temps.
- Compatibilité. La robustesse et la fiabilité du RTMPS ont encouragé un plus grand nombre de fabricants à concevoir leurs produits de manière à ce qu'ils s'intègrent facilement au RTMPS
Cons
- RTMP nécessite une connexion permanente entre le client et le serveur, ce qui peut être problématique en cas de perturbations du réseau.
- En tant que logiciel propriétaire, il offre peu de flexibilité aux utilisateurs chevronnés.
FAQS
Comment utiliser Wave.video pour la diffusion en continu via RTMP ?
Si vous souhaitez diffuser de la vidéo via RTMP, Wave.video est une excellente option. Voici comment l'utiliser :
- Créez un compte sur Wave.video et connectez-vous si vous ne l'avez pas encore fait.
- Choisissez la vidéo que vous souhaitez diffuser.
- Accédez à la page "Destinations" de Wave.video et cliquez sur "Custom RTMP".
- Ensuite, vous devez trouver l'URL du serveur et la clé de streaming pour le contenu que vous essayez de diffuser. Pour ce faire, rendez-vous sur le site web où se trouve le flux que vous souhaitez visualiser.
- Vous pouvez utiliser une application ou une extension tierce pour extraire l'URL et la clé si vous ne savez pas comment procéder.
- Copiez l'URL du serveur et la clé de flux.
- Collez l'URL du serveur et la clé de flux dans Wave.video.
- Créez ou planifiez votre flux.
- Ouvrez le studio en direct et commencez à diffuser.
C'est tout ce qu'il y a à faire, rapide et facile !
Quels encodeurs prennent en charge le RTMP ?
Il existe de nombreux matériels et logiciels d'encodage qui prennent en charge le RTMP. En voici quelques-uns :
- Adobe Media Encoder
- OBS Studio
- Serveur élémentaire
- TriCaster
- Wirecast
- vMix
- TeraDek
- Moteur de diffusion Wowza
- Vidéo Niagara
RTMP vs. RTSP - Qu'est-ce qui est le mieux ?
RTMP et RTSP sont des protocoles de diffusion en continu d'audio, de vidéo et de données sur l'internet. Ils sont similaires à bien des égards, mais certaines différences essentielles les rendent idéaux pour des situations ou des préférences différentes.
Voici un bref aperçu des principales différences entre les deux :
- RTMP est plus adapté à la diffusion en direct, tandis que RTSP est plus adapté à la diffusion à la demande.
- RTMP a une latence plus faible, tandis que RTSP peut fournir une vidéo de meilleure qualité.
- RTMP nécessite un serveur Flash Media, tandis que RTSP peut fonctionner avec n'importe quel serveur média.
Quel est donc le meilleur protocole ? Tout dépend de vos besoins spécifiques.
RTMP est un bon choix si vous avez besoin d'une faible latence et que l'utilisation de Flash ne vous dérange pas. RTSP peut être idéal si vous avez besoin d'une vidéo de haute qualité ou si vous souhaitez utiliser un serveur multimédia non Flash.
Qu'est-ce que le format Action Message (AMF) ?
L'AMF est un format binaire permettant d'encoder et de transmettre des données sur l'internet, et il est souvent utilisé en conjonction avec le RTMP.
L'AMF permet de transmettre des données incompatibles avec le RTMP, telles que des objets ActionScript. Il permet également l'échange efficace de données entre les applications Flash et les serveurs.
Qu'est-ce qu'une URL RTMP et comment l'obtenir de Facebook ou de YouTube ?
Une URL RTMP est un identifiant unique utilisé pour diffuser du contenu vidéo en direct sur diverses plateformes.
Il contient généralement une adresse IP, un nom de domaine et un numéro de port.
Vous devez créer un événement de diffusion en direct sur l'une ou l'autre plateforme pour l'obtenir de YouTube ou de Facebook. Une fois que vous l'aurez fait, vous pourrez trouver l'URL RTMP dans les paramètres de l'événement.
Réflexions finales
Le RTMP s'est incontestablement imposé dans le monde. Est-il en voie de disparition ? En tant que solution de sortie, peut-être, mais pas du tout en tant que solution d'entrée !
Même si d'autres solutions aussi performantes, voire plus, apparaissent, le protocole RTMP restera pertinent pour la transmission de médias et la diffusion en continu.