Guía completa sobre RTMP: ¿Qué es y cuándo utilizarlo?
El protocolo de mensajería en tiempo real (RTMP) es un formato de streaming muy utilizado. Existe desde hace muchos años y se ha convertido en una herramienta esencial para emisoras, operadores de redes y muchos otros sectores. Sin embargo, algunos conceptos erróneos sobre RTMP han hecho que sea menos popular de lo que podría ser.
Pero, ¿qué es exactamente RTMP? ¿Cómo funciona? ¿Debería utilizarlo en su próxima retransmisión en directo?
Descubra esto y mucho más a continuación.
¿Qué es RTMP?
RTMP es un protocolo de red o un sistema utilizado para transmitir contenidos multimedia por Internet basado en la tecnología del Protocolo de Control de Transmisión (TCP).
TCP es uno de los componentes del conjunto de protocolos de Internet. El otro componente importante es el protocolo de Internet, también conocido como IP.
RTMP es un protocolo de red o un sistema utilizado para transmitir contenidos multimedia por Internet.
Juntos, TCP e IP actúan como puentes de comunicación entre las capas de aplicación y red. Piénsalo así: la capa de aplicación engloba aquello con lo que normalmente interactuarías, como el navegador Mozilla Firefox o cualquier otra aplicación de usuario.
Para que tu navegador Firefox cargue una página web, debe enviar una petición al servidor del sitio web. Al recibir la petición, el servidor envía el recurso solicitado (es decir, un flujo de vídeo, un vídeo pregrabado en YouTube o el código Html de la página web).
Para mantener una comunicación eficaz (es decir, evitar que la correspondencia se caiga o se retrase), el mensaje debe desmontarse en piezas más pequeñas conocidas como paquetes. Esto se hace en el lado del remitente y, una vez recibido el mensaje, se vuelve a montar para el usuario.
TCP es el componente que se encarga de dividir el mensaje en paquetes o trozos más pequeños que puedan transmitirse con eficacia y eficiencia.
La capa IP actúa como agente de reenvío que determina las mejores rutas para transmitir los paquetes a través de Internet.
El protocolo RTMP es utilizado por muchos reproductores multimedia populares, como Adobe Flash Player, VLC Media Player, QuickTime Player y Windows Media Player. RTMP también es compatible con algunos navegadores web, como Google Chrome y Mozilla Firefox.
La principal preocupación de la mayoría de los usuarios con una solución de streaming es cómo transmite el contenido. Si la calidad de la resolución de la transmisión es baja, la mayoría de los consumidores no la aceptarán. Del mismo modo, una solución de streaming con una latencia alta y una carga o almacenamiento en búfer demasiado prolongados antes de reproducir el contenido no saldrá bien parada.
Aquí es donde RTMP brilla. Desde su desarrollo, RTMP ha garantizado una baja latencia, un almacenamiento en búfer mínimo y una de las mejores calidades de resolución de streaming siempre que la conexión de red sea lo suficientemente potente y rápida.
Otro punto a favor de RTMP es su capacidad para soportar streaming masivo de forma simultánea y sin mayores problemas.
Sin embargo, a pesar de que existe desde hace muchos años, el RTMP ha sido objeto recientemente de un mayor escrutinio porque el sistema es inseguro para sus usuarios.
He aquí cómo se produce la vulnerabilidad o vulnerabilidades de seguridad:
En primer lugar, el protocolo RTMP no lleva incorporado ningún tipo de cifrado. Por lo tanto, cualquier comunicación o transferencia de paquetes mientras se utiliza el RTMP está abierta a ser escuchada por grupos no autorizados o ataques de tipo man-in-the-middle.
Otro factor que contribuyó a la vulnerabilidad de seguridad de RTMP es que su código fuente fue propietario durante mucho tiempo. El software propietario (es decir, aquel cuya propiedad y derechos de control están limitados a la entidad que lo desarrolló o compró) suele recibir parches de seguridad que aparecen con regularidad, pero no es suficiente.
Con frecuencia surgen nuevas vulnerabilidades, y la comunidad creada en torno al software de código abierto garantiza parches de seguridad relativamente más frecuentes y mejores. Esto es lo que le faltó a RTMP para mejorar su seguridad.
Variaciones RTMP
Las variaciones de RTMP incluyen las siguientes:
- Servidor de protocolo de mensajería en tiempo real (RTMPS): es bastante parecido al RTMP, sólo que tiene cifrado, es decir, la capa de sockets seguros (SSL) y la seguridad de la capa de transporte (TLS) activadas, y es compatible con todos los reproductores con Flash player activado. Se utiliza en situaciones en las que es vital evitar la manipulación o el acceso no autorizado a los datos en tránsito.
- Protocolo cifrado de mensajería en tiempo real (RTMPE): es un protocolo de transmisión muy versátil que utiliza tanto el protocolo de control de transporte (TCP) como el protocolo de datagramas de usuario (UDP) para transmitir datos. RTMPE también codifica todas las transmisiones de datos utilizando la codificación patentada de Adobe para evitar el acceso no autorizado y la manipulación.
- Real-Time Messaging Protocol Tunnel (RTMPT) - RTMPT emplea un mecanismo de túnel para eludir los cortafuegos que suelen bloquear todo el tráfico RTMP. En la práctica, RTMPT requiere que el cliente envíe una petición HTTP modificada al servidor, que responde con una transmisión HTTP casi similar. El cliente y el servidor utilizan un identificador de sesión; una vez establecida la conexión, puede comenzar la transmisión de datos entre ambos.
- Protocolo de Flujo de Medios en Tiempo Real (RTMFP) - El RTMFP es una versión mejorada del RTMP en el sentido de que emplea un formato de codificación UDP diferente para lograr un flujo de medios de alto rendimiento.
Historia del streaming RTMP
Real-Time Messaging Protocol (RTMP) fue inicialmente un protocolo propietario desarrollado por Macromedia para la transmisión de audio, vídeo y datos a través de Internet entre un reproductor Flash y un servidor.
En la actualidad, numerosos servicios en línea populares como Facebook, Twitch y Twitter utilizan RTMP para la retransmisión de vídeo en directo.
La primera versión pública de RTMP se publicó en 2002. En 2009, Adobe publicó una versión de especificación abierta de RTMP conocida como OpenRTMP. La principal diferencia entre RTMP y OpenRTMP es que con OpenRTMP se puede utilizar cualquier servidor multimedia en lugar de solo Flash Media Server (FMS).
La especificación RTMP abierta también ofrece más flexibilidad a los desarrolladores a la hora de proteger o configurar las funciones entre pares. Con ello se pretende fomentar la innovación y la colaboración a través de la competencia y el acceso abierto entre desarrolladores para desarrollar la solución RTMP ideal.
El principio fundamental
RTMP utiliza una técnica llamada "streaming" para transmitir contenidos. Esto significa que los datos se transfieren en pequeños fragmentos llamados "chunks", que se reensamblan en el otro extremo para que el usuario pueda ver o escuchar el contenido sin esperar a descargarlo por completo.
El funcionamiento del RTMP se divide en dos partes: La primera y la última milla.
La entrega de primera milla suele consistir en la transmisión de medios desde el codificador al servidor mediante RTMP. La entrega de última milla se refiere a la transmisión de medios desde el servidor hasta el dispositivo del usuario. En esta segunda parte se utiliza un reproductor Flash o una herramienta igualmente capaz. Hay noticias de que Adobe está dejando de dar soporte a Flash, lo que significa el fin de la entrega de última milla.
En respuesta, la industria ha adoptado el Protocolo de Transferencia de Hipertexto (HTTP), una solución de streaming más eficaz.
Las variantes de RTMP como RTMPT emplean actualmente HTTP para encapsular y transmitir medios.
Cómo funciona la ingesta RTMP
Esta es probablemente una de las ventajas de RTMP, que le ha permitido seguir funcionando tanto tiempo. A medida que el mundo se alejaba de la visualización de contenidos en ordenadores y se acercaba a la visualización móvil, RTMP se enfrentó a un reto.
Por un lado, RTMP se basaba en el reproductor Adobe Flash para ofrecer su experiencia de streaming sin interrupciones, pero había un pequeño problema. Los dispositivos móviles no admitían Adobe Flash Player, por lo que RTMP resultaba inútil para los usuarios que querían los mismos servicios de streaming en sus dispositivos móviles.
En respuesta, Apple desarrolló el protocolo HLS para soportar la funcionalidad de streaming en dispositivos móviles.
Era razonable esperar que RTMP quedara obsoleto. Afortunadamente, sobrevivió con la ingesta RTMP, que se hizo un hueco como protocolo ideal para transportar contenidos multimedia del codificador al servidor.
La ingesta RTMP da prioridad al funcionamiento de codificadores de bajo coste y, en general, ofrece a los usuarios un streaming de baja latencia.
Consta de tres componentes principales:
1. El apretón de manos
Cuando un cliente quiere conectarse a un servidor RTMP, primero tiene que establecer un "handshake". Este proceso comienza cuando el cliente envía una solicitud de "conexión" al servidor, que incluye información sobre el cliente y el tipo de conexión que intenta establecer.
A continuación, el servidor responde con un mensaje de "conectado", que incluye información sobre el servidor y el tipo de conexión que se ha establecido.
Por último, el cliente y el servidor intercambian mensajes para confirmar que ambos siguen conectados y negociar los parámetros necesarios para la conexión.
2. La conexión
El objetivo principal de la conexión de ingesta RTMP es proporcionar un medio para transmitir contenidos multimedia desde una fuente a un destino.
La fuente puede ser una cámara en directo, un vídeo pregrabado, audio u otros medios. El destino suele ser un servidor de streaming, que distribuye el contenido a los espectadores.
Hay tres componentes en una conexión de ingesta RTMP:
- El codificador convierte la señal de vídeo y audio en un formato digital que puede transportarse por Internet.
- El transporte: Es el medio por el que se envía la señal codificada desde el codificador al servidor; normalmente, se hace a través de UDP o TCP.
- El servidor recibe la señal codificada y la pone a disposición de los espectadores (normalmente empaquetándola en un formato como Flash).
3. El Streaming
Cuando un usuario transmite contenidos a un servidor multimedia, éste debe codificar primero la señal de vídeo y audio entrante antes de enviarla a todos los clientes conectados.
El proceso de codificar y reformatear vídeo y audio a un formato de archivo estándar se denomina transcodificación. Consiste en convertir la señal de entrada en un formato que pueda reproducirse en distintos dispositivos.
Hay dos tipos de streaming: en directo y a la carta. El streaming en directo se refiere a la emisión en tiempo real, mientras que el streaming a la carta es cuando los usuarios pueden ver contenidos cómodamente.
El streaming en directo requiere una conexión constante entre el cliente y el servidor, mientras que el streaming a la carta no.
RTMP utiliza TCP para mantener una conexión persistente entre el cliente y el servidor, lo que permite un streaming de baja latencia. Sin embargo, RTMP no es adecuado para el streaming bajo demanda.
Alternativas RTMP para la ingesta
SRT y WebRTC son los principales contendientes que pueden igualar o superar las capacidades de RTMP. Aquí tienes un breve avance de las dos alternativas:
Transporte seguro y fiable (SRT)
SRT colma las lagunas que RTMP no pudo cubrir, como la de mantener una baja latencia en la transmisión incluso cuando el usuario está conectado a una red relativamente poco fiable. Esto lo convierte en una excelente opción tanto para la retransmisión en directo como a la carta.
Al ser de código abierto, los límites de sus capacidades son infinitos y no hay que preocuparse por si se retira el apoyo al desarrollo.
Comunicaciones web en tiempo real (WebRTC)
WebRTC gana con su publicación basada en navegador. También se está trabajando en el protocolo WebRTC HTTP Ingest Protocol (WHIP), lo que significa para los usuarios que podrán retransmitir sólo con un navegador web en lugar de tener que molestarse con codificadores como ocurre con RTMP.
RTMP Alternativas de salida
Las principales alternativas de salida RTMP son HTTP Live Streaming (HLS), MPEG-DASH y WebRTC.
He aquí un breve avance de las alternativas:
HLS y MPEG-DASH
Ambos son prácticamente iguales, sólo que HLS es propietario mientras que MPEG-DASH es de código abierto.
Lo mejor de estos dos es que están diseñados para ofrecer baja latencia, una calidad multimedia óptima e incluso funcionar con conexiones de red poco fiables.
WebRTC es también una alternativa notable a las soluciones de salida RTMP.
¿Están muriendo RTMP y Flash?
La respuesta corta es: probablemente no. La respuesta larga es un poco más complicada.
El aumento constante de la popularidad de HTML5 y la proliferación de alternativas capaces de Flash pueden hacer que parezca que RTMP y Flash están muriendo. Pero no es así.
Flash lleva un tiempo en declive, perdiendo una importante cuota de mercado en favor de HTML5 en los últimos años, y su posición antaño dominante en el mundo del vídeo se ve ahora constantemente amenazada.
Sin embargo, sigue teniendo una presencia significativa en la web y es utilizado por muchos sitios populares, como YouTube y Facebook.
En cuanto al RTMP, sigue siendo muy utilizado para transmitir contenidos de audio y vídeo. Sin embargo, su futuro es menos seguro que el de Flash.
Adobe ha anunciado que dejará de dar soporte a RTMP en 2020, lo que podría marcar el fin de este protocolo. No obstante, existen multitud de alternativas basadas en RTMP, por lo que es probable que siga utilizándose de una forma u otra en los próximos años.
¿Debería hacer streaming con RTMP?
Depende. Echa un vistazo a algunas de las ventajas e inconvenientes de utilizar RTMP.
Pros
- Es muy estable. En comparación con otras alternativas del mercado, es muy poco probable que experimentes alguna interrupción o tiempo de inactividad mientras utilizas un servicio habilitado para RTMP.
- Baja latencia y mínimo buffering. RTMP es único en este sentido, lo que significa que los usuarios pueden ver vídeos con mejor resolución y que los archivos tardan mucho menos en cargarse.
- Compatibilidad. La solidez y fiabilidad de RTMPS animó a más fabricantes a diseñar sus productos para que se integraran fácilmente con RTMP
Contras
- RTMP requiere una conexión persistente entre el cliente y el servidor, lo que puede resultar problemático si se producen interrupciones en la red.
- Al ser un software propietario, hay poca flexibilidad para los usuarios avanzados.
FAQS
¿Cómo se utiliza Wave.video para la transmisión por RTMP?
Si quieres transmitir vídeo a través de RTMP, Wave.video es una gran opción. Acontinuación te explicamos cómo utilizarlo:
- Crea una cuenta en Wave.video e inicia sesión si aún no lo has hecho.
- Elija el vídeo que desea transmitir.
- Vaya a la página "Destinos" de Wave.video y haga clic en "RTMP personalizado".
- A continuación, tendrás que encontrar la URL del servidor y la clave de transmisión del contenido que quieres ver. Para ello, navega hasta el sitio web en el que se encuentra el flujo que quieres ver.
- Puedes utilizar una aplicación o extensión de terceros para extraer la URL y la clave si no sabes cómo hacerlo.
- Copie la URL del servidor y la clave de flujo.
- Pega la URL del servidor y la clave de transmisión en Wave.video.
- Cree o programe su flujo.
- Abre el estudio en directo y empieza a retransmitir.
Eso es todo, ¡rápido y fácil!
¿Qué codificadores admiten RTMP?
Existen muchos codificadores de hardware y software compatibles con RTMP. Algunos de ellos son:
- Adobe Media Encoder
- Estudio OBS
- Servidor elemental
- TriCaster
- Difusión por cable
- vMix
- TeraDek
- Motor de streaming Wowza
- Niágara Vídeo
RTMP vs. RTSP - ¿Cuál es mejor?
RTMP y RTSP son protocolos para la transmisión de audio, vídeo y datos a través de Internet. Son similares en muchos aspectos, pero algunas diferencias clave los hacen ideales para distintas situaciones o preferencias.
He aquí un breve resumen de las principales diferencias entre ambos:
- RTMP es mejor para la retransmisión en directo, mientras que RTSP es mejor para la retransmisión a la carta.
- RTMP tiene menor latencia, mientras que RTSP puede proporcionar vídeo de mayor calidad.
- RTMP requiere un Flash Media Server, mientras que RTSP puede funcionar con cualquier servidor multimedia.
¿Qué protocolo es mejor? Todo depende de tus necesidades específicas.
RTMP es una buena opción si necesitas baja latencia y no te importa utilizar Flash. RTSP puede ser ideal si necesitas un vídeo de alta calidad o quieres utilizar un servidor multimedia que no sea Flash.
¿Qué es el formato de mensaje de acción (AMF)?
AMF es un formato binario para codificar y transmitir datos por Internet, y a menudo se utiliza junto con RTMP.
AMF permite transmitir datos incompatibles con RTMP, como objetos ActionScript. También permite el intercambio eficaz de datos entre aplicaciones Flash y servidores.
¿Qué es una URL RTMP y cómo obtenerla de Facebook o YouTube?
Una URL RTMP es un identificador único utilizado para transmitir contenidos de vídeo en directo a diversas plataformas.
Suele contener una dirección IP, un nombre de dominio y un número de puerto.
Debes crear un evento de retransmisión en directo en cualquiera de las dos plataformas para obtenerlo de YouTube o Facebook. Una vez hecho esto, podrás encontrar la URL RTMP en la configuración del evento.
Reflexiones finales
No cabe duda de que el RTMP ha dejado su huella en el mundo. ¿Está en vías de desaparición? Como solución de salida, posiblemente; de entrada, en absoluto.
Aunque surjan otras alternativas tanto o más capaces, RTMP seguirá siendo relevante en la transmisión de medios y el streaming.