Guida completa a RTMP: cos'è e quando usarlo?
Il protocollo di messaggistica in tempo reale (RTMP) è un formato di streaming molto diffuso. Esiste da molti anni ed è diventato uno strumento essenziale per le emittenti, gli operatori di rete e molti altri settori. Tuttavia, alcune idee sbagliate sull'RTMP lo hanno reso meno popolare di quanto potrebbe essere.
Ma cos'è esattamente l'RTMP? Come funziona? E dovreste usarlo per il vostro prossimo live stream?
Scoprite questo e altro di seguito.
Che cos'è RTMP?
RTMP è un protocollo di rete o un sistema utilizzato per lo streaming di contenuti multimediali su Internet basato sulla tecnologia Transmission Control Protocol (TCP).
Il TCP è uno dei componenti che costituiscono la suite di protocolli Internet. L'altro componente importante è il protocollo Internet, noto anche come IP.
RTMP è un protocollo di rete o un sistema utilizzato per lo streaming di contenuti multimediali su Internet.
Insieme, TCP e IP fungono da ponti di comunicazione tra il livello applicativo e quello di rete. Il livello applicazione comprende ciò con cui si interagisce normalmente, come il browser Mozilla Firefox o qualsiasi altra applicazione utente.
Per caricare una pagina web, il browser Firefox deve inviare una richiesta al server del sito. Una volta ricevuta la richiesta, il server invia la risorsa richiesta (ad esempio, un flusso video, un video preregistrato su YouTube o il codice Html per la pagina web).
Per mantenere una comunicazione efficace (cioè evitare che la corrispondenza venga interrotta o ritardata), il messaggio deve essere smontato in pezzi più piccoli, detti pacchetti. Questo viene fatto dal lato del mittente e, una volta ricevuto il messaggio, viene riassemblato per l'utente.
Il TCP è il componente che si occupa di suddividere il messaggio in pacchetti o pezzi più piccoli che possono essere trasmessi in modo efficace ed efficiente.
Il livello IP agisce come agente di inoltro che determina i percorsi migliori per la trasmissione dei pacchetti su Internet.
Il protocollo RTMP è utilizzato da molti lettori multimediali popolari, tra cui Adobe Flash Player, VLC Media Player, QuickTime Player e Windows Media Player. RTMP è supportato anche da alcuni browser web, tra cui Google Chrome e Mozilla Firefox.
La preoccupazione principale per la maggior parte degli utenti di una soluzione di streaming è la modalità di trasmissione dei contenuti. Se la qualità della risoluzione dello streaming è bassa, la maggior parte dei consumatori non ne potrà più fare a meno. Allo stesso modo, una soluzione di streaming con latenza elevata e buffer o caricamenti troppo lunghi prima di riprodurre il contenuto non andrà bene.
È qui che RTMP brilla. Fin dal suo sviluppo, RTMP ha garantito una bassa latenza, un buffering minimo e una delle migliori qualità di risoluzione dello streaming, a condizione che la connessione di rete sia sufficientemente forte e veloce.
Un altro vantaggio di RTMP è la sua capacità di supportare lo streaming di massa in modo simultaneo e senza problemi.
Tuttavia, nonostante sia in circolazione da molti anni, l'RTMP è stato recentemente oggetto di un'attenta analisi a causa dell'insicurezza del sistema per i suoi utenti.
Ecco come si presentano le vulnerabilità di sicurezza:
In primo luogo, il protocollo RTMP non è dotato di crittografia. Pertanto, qualsiasi comunicazione o trasferimento di pacchetti durante l'utilizzo di RTMP può essere ascoltato da gruppi non autorizzati o da attacchi di tipo man-in-the-middle.
Un altro fattore che ha contribuito alla vulnerabilità della sicurezza di RTMP è che il suo codice sorgente è stato proprietario per molto tempo. Il software proprietario (cioè il software la cui proprietà e i cui diritti di controllo sono limitati all'entità che lo ha sviluppato o acquistato) riceve in genere patch di sicurezza che arrivano regolarmente, ma non è sufficiente.
Nuove vulnerabilità emergono frequentemente e la comunità costruita attorno al software open-source garantisce patch di sicurezza relativamente più frequenti e migliori. Questo è ciò che RTMP ha perso per migliorare la sua posizione di sicurezza.
Variazioni RTMP
Le varianti RTMP includono le seguenti:
- Real-Time Messaging Protocol Server (RTMPS) - è del tutto simile a RTMP, solo che è dotato di crittografia, cioè di secure sockets layer (SSL) e Transport Layer Security (TLS), e supporta tutti i lettori con Flash player abilitato. Viene utilizzato in scenari in cui è fondamentale impedire la manomissione o l'accesso non autorizzato ai dati in transito.
- Encrypted Real-Time Messaging Protocol (RTMPE) - è un protocollo di streaming molto versatile che utilizza sia il Transport Control Protocol (TCP) che lo User Datagram Protocol (UDP) per trasmettere i dati. Inoltre, RTMPE cripta tutte le trasmissioni di dati utilizzando la crittografia proprietaria di Adobe per evitare accessi non autorizzati e manomissioni.
- Real-Time Messaging Protocol Tunnel (RTMPT) - RTMPT utilizza un meccanismo di tunneling per aggirare i firewall che in genere bloccano tutto il traffico RTMP. In pratica, RTMPT richiede che il client invii una richiesta HTTP modificata al server, che risponde con una trasmissione HTTP quasi simile. Il client e il server utilizzano un ID di sessione; una volta stabilita la connessione, la trasmissione dei dati può iniziare tra i due.
- Real-Time Media Flow Protocol (RTMFP) - L'RTMFP è una versione avanzata dell'RTMP, in quanto impiega un diverso formato di codifica UDP per ottenere uno streaming multimediale ad alte prestazioni.
Storia dello streaming RTMP
Real-Time Messaging Protocol (RTMP) era inizialmente un protocollo proprietario sviluppato da Macromedia per lo streaming di audio, video e dati su Internet tra un lettore Flash e un server.
RTMP è ora utilizzato da numerosi servizi online popolari come Facebook, Twitch e Twitter per lo streaming video in diretta.
La prima versione pubblica di RTMP risale al 2002. Nel 2009, Adobe ha rilasciato una versione di RTMP con specifiche aperte, nota come OpenRTMP. La differenza principale tra RTMP e OpenRTMP è che con OpenRTMP è possibile utilizzare qualsiasi media server anziché solo Flash Media Server (FMS).
Le specifiche RTMP aperte offrono inoltre una maggiore flessibilità per quanto riguarda le modalità con cui gli sviluppatori possono proteggere o configurare le funzionalità peer-to-peer. Ciò ha lo scopo di incoraggiare l'innovazione e la collaborazione attraverso la concorrenza e l'accesso aperto tra gli sviluppatori per sviluppare la soluzione RTMP ideale.
Il principio fondamentale
RTMP utilizza una tecnica chiamata "streaming" per trasmettere i contenuti. Ciò significa che i dati vengono trasferiti in piccoli pezzi chiamati "chunks", che vengono riassemblati all'altra estremità, in modo che l'utente possa guardare o ascoltare il contenuto senza aspettare di scaricarlo completamente.
Il funzionamento dell'RTMP si articola in due parti: La consegna del primo e dell'ultimo miglio.
La consegna del primo miglio comporta generalmente la trasmissione dei media dal codificatore al server utilizzando RTMP. La consegna dell'ultimo miglio si riferisce alla trasmissione dei media dal server al dispositivo dell'utente. In questa seconda parte si utilizza un lettore Flash o uno strumento altrettanto capace. Si dice che Adobe stia abbandonando il supporto per Flash; di conseguenza, questo significa la fine della consegna dell'ultimo miglio.
In risposta, il settore ha adottato l'Hypertext Transfer Protocol (HTTP), una soluzione di streaming più efficiente.
Le varianti di RTMP come RTMPT utilizzano attualmente HTTP per incapsulare e trasmettere i media.
Come funziona l'ingest RTMP
Questo è probabilmente uno dei punti di forza di RTMP che lo ha fatto durare così a lungo. Quando il mondo si è allontanato dalla visione dei media su computer per passare a quella su dispositivi mobili, RTMP ha dovuto affrontare una sfida.
In primo luogo, RTMP si affidava ad Adobe Flash player per offrire un'esperienza di streaming senza interruzioni, ma c'era un piccolo problema. I dispositivi mobili non supportavano Adobe Flash player; in sostanza, RTMP diventava inutile per gli utenti che volevano gli stessi servizi di streaming sui loro dispositivi mobili.
In risposta, Apple ha sviluppato il protocollo HLS per supportare la funzionalità di streaming sui dispositivi mobili.
Era ragionevole aspettarsi che RTMP sarebbe diventato obsoleto. Fortunatamente, è sopravvissuto con RTMP ingest, creando la sua nicchia come protocollo ideale per il trasporto dei media dall'encoder al server.
L'ingest RTMP dà priorità ai codificatori a basso costo per funzionare e generalmente offre agli utenti uno streaming a bassa latenza.
Si tratta di tre componenti principali:
1. La stretta di mano
Quando un client vuole connettersi a un server RTMP, deve prima stabilire un handshake. Questo processo inizia con l'invio da parte del client di una richiesta di "connessione" al server, che include informazioni sul client e sul tipo di connessione che sta cercando di stabilire.
Il server risponde con un messaggio "connected", che include informazioni sul server e sul tipo di connessione stabilita.
Infine, il client e il server si scambiano messaggi per confermare che entrambi sono ancora connessi e per negoziare eventuali parametri necessari per la connessione.
2. La connessione
Lo scopo principale della connessione RTMP ingest è quello di fornire un mezzo per lo streaming di contenuti multimediali da una sorgente a una destinazione.
La sorgente multimediale può essere una telecamera in diretta, un video preregistrato, un audio o altri media. La destinazione è solitamente un server multimediale di streaming, che distribuisce il contenuto agli spettatori.
Una connessione RTMP ingest è composta da tre componenti:
- L'encoder converte il segnale video e audio in un formato digitale che può essere trasportato su Internet.
- Il trasporto: È il mezzo attraverso il quale il segnale codificato viene inviato dal codificatore al server; in genere, questo avviene tramite UDP o TCP.
- Il server riceve il segnale codificato e lo rende disponibile agli spettatori (di solito impacchettandolo in un formato come Flash).
3. Il flusso
Quando un utente trasmette contenuti in streaming a un media server, quest'ultimo deve innanzitutto codificare il flusso video e audio in entrata prima di inviarlo a tutti i client collegati.
Il processo di codifica e riformattazione di video e audio in un formato di file standard è chiamato transcodifica. Si tratta di convertire il segnale di ingresso in una forma che possa essere riprodotta su vari dispositivi.
Per quanto riguarda lo streaming, esistono due tipi di streaming: live e on-demand. Lo streaming live si riferisce alla trasmissione in tempo reale, mentre lo streaming on-demand è quando gli utenti possono guardare i contenuti comodamente.
Lo streaming live richiede una connessione costante tra il client e il server, mentre lo streaming on-demand non lo richiede.
RTMP utilizza TCP per mantenere una connessione persistente tra il client e il server, consentendo uno streaming a bassa latenza. Tuttavia, RTMP non è adatto allo streaming on-demand.
Alternative RTMP per l'ingest
SRT e WebRTC sono i principali contendenti in grado di eguagliare o superare le capacità di RTMP. Ecco una breve anteprima delle due alternative:
Trasporto sicuro e affidabile (SRT)
SRT colma le lacune che RTMP non è riuscito a colmare, come il mantenimento di uno streaming a bassa latenza anche quando l'utente è connesso a una rete relativamente inaffidabile. Ciò lo rende una scelta eccellente sia per lo streaming live che per quello on-demand.
Essendo open source, i limiti delle sue capacità sono infiniti e non c'è da preoccuparsi che il supporto allo sviluppo venga ritirato.
Comunicazioni Web in tempo reale (WebRTC)
WebRTC vince con la pubblicazione basata su browser. È in preparazione anche il WebRTC HTTP Ingest Protocol (WHIP), che significa per gli utenti la possibilità di effettuare lo streaming solo con un browser web, invece di dover ricorrere a encoder come nel caso di RTMP.
Alternative RTMP per l'uscita
In cima all'elenco delle alternative di RTMP egress ci sono HTTP Live Streaming (HLS), MPEG-DASH e WebRTC.
Ecco una breve anteprima delle alternative:
HLS e MPEG-DASH
Questi due elementi sono praticamente identici, solo che HLS è proprietario mentre MPEG-DASH è open-source.
L'aspetto migliore di questi due prodotti è che sono stati progettati per offrire una bassa latenza, una qualità multimediale ottimale e per funzionare anche con connessioni di rete inaffidabili.
WebRTC è anche un'alternativa degna di nota alle soluzioni di ingresso RTMP.
RTMP e Flash stanno morendo?
La risposta breve è: probabilmente no. La risposta lunga è un po' più complicata.
Il costante aumento della popolarità di HTML5 e la proliferazione di valide alternative a Flash possono far pensare che RTMP e Flash stiano morendo. Ma non è così.
Flash è in declino da un po' di tempo a questa parte, perdendo una quota di mercato significativa a favore di HTML5 negli ultimi anni, e la sua posizione un tempo dominante nel mondo dei video è ora costantemente minacciata.
Tuttavia, ha ancora una presenza significativa sul web ed è utilizzato da molti siti popolari, tra cui YouTube e Facebook.
Per quanto riguarda RTMP, è ancora ampiamente utilizzato per lo streaming di contenuti audio e video. Tuttavia, il suo futuro è meno certo di quello di Flash.
Adobe ha annunciato che smetterà di supportare RTMP nel 2020, il che potrebbe segnare la fine di questo protocollo. Tuttavia, esistono numerose alternative basate su RTMP, quindi è probabile che continuerà a essere utilizzato in una forma o nell'altra per gli anni a venire.
Quindi, dovreste trasmettere in streaming utilizzando RTMP?
Dipende. Date un'occhiata ad alcuni pro e contro dell'uso di RTMP.
Pro
- È molto stabile. Rispetto ad altre alternative presenti sul mercato, è altamente improbabile che si verifichino interruzioni o tempi di inattività durante l'utilizzo di un servizio abilitato RTMP.
- Bassa latenza e buffering minimo. L'RTMP è unico in questo senso, il che significa che gli utenti possono guardare i video con una risoluzione migliore e che il caricamento dei media richiede molto meno tempo.
- Compatibilità. La natura robusta e affidabile di RTMPS ha incoraggiato un maggior numero di produttori a progettare i propri prodotti per integrarsi facilmente con RTMP.
Contro
- RTMP richiede una connessione persistente tra il client e il server, che può essere problematica in caso di interruzioni della rete.
- Essendo un software proprietario, c'è poca flessibilità per gli utenti più esperti.
FAQS
Come si usa Wave.video per lo streaming via RTMP?
Se volete trasmettere video in streaming via RTMP, Wave.video è un'ottima opzione. Ecco come usarlo:
- Se non l'avete ancora fatto, create un account su Wave.video ed effettuate il login.
- Scegliere il video che si desidera trasmettere.
- Accedere alla pagina "Destinazioni" su Wave.video e fare clic su "RTMP personalizzato".
- Successivamente, dovrete trovare l'URL del server e la chiave di streaming per il contenuto che state cercando di trasmettere. A tale scopo, visitate il sito web con lo streaming che desiderate visualizzare.
- È possibile utilizzare un'applicazione o un'estensione di terze parti per estrarre l'URL e la chiave se non si sa come procedere.
- Copiare l'URL del server e la chiave di flusso.
- Incollare l'URL del server e la chiave di streaming in Wave.video.
- Creare o programmare lo streaming.
- Aprire lo studio live e avviare lo streaming.
Tutto qui, facile e veloce!
Quali codificatori supportano RTMP?
Esistono molti hardware e software di codifica che supportano RTMP. Alcuni di questi includono:
- Adobe Media Encoder
- Studio OBS
- Server elementare
- TriCaster
- Trasmissione a filo
- vMix
- TeraDek
- Motore di streaming Wowza
- Video Niagara
RTMP vs. RTSP: qual è il migliore?
RTMP e RTSP sono protocolli per lo streaming di audio, video e dati su Internet. Sono simili sotto molti aspetti, ma alcune differenze fondamentali li rendono ideali per situazioni o preferenze diverse.
Ecco un rapido riepilogo delle principali differenze tra i due:
- RTMP è migliore per lo streaming in diretta, mentre RTSP è migliore per lo streaming on-demand.
- RTMP ha una latenza inferiore, mentre RTSP può fornire video di qualità superiore.
- RTMP richiede un Flash Media Server, mentre RTSP può funzionare con qualsiasi media server.
Quindi, quale protocollo è migliore? Tutto dipende dalle vostre esigenze specifiche.
RTMP è una buona scelta se avete bisogno di una bassa latenza e non vi dispiace usare Flash. RTSP potrebbe essere l'ideale se si ha bisogno di un video di alta qualità o se si vuole utilizzare un media server non Flash.
Che cos'è il formato dei messaggi d'azione (AMF)?
AMF è un formato binario per la codifica e la trasmissione di dati su Internet, spesso utilizzato insieme a RTMP.
AMF consente di trasmettere dati incompatibili con RTMP, come gli oggetti ActionScript. Inoltre, consente uno scambio efficiente di dati tra applicazioni Flash e server.
Cos'è un URL RTMP e come ottenerlo da Facebook o YouTube?
Un URL RTMP è un identificatore unico utilizzato per lo streaming di contenuti video in diretta su varie piattaforme.
In genere contiene un indirizzo IP, un nome di dominio e un numero di porta.
È necessario creare un evento in live-streaming su una delle due piattaforme per ottenerlo da YouTube o Facebook. Una volta fatto questo, sarà possibile trovare l'URL RTMP nelle impostazioni dell'evento.
Pensieri finali
L'RTMP ha indubbiamente lasciato il segno nel mondo. È in via di estinzione? Come soluzione per l'uscita, forse, ma per l'ingresso no!
Anche se si presentano altre alternative altrettanto o più valide, RTMP continuerà a essere importante per la trasmissione e lo streaming dei media.