¿Qué método es mejor, descarga HTTP o transmisión RTMP?

Recibo la pregunta de elección del servicio de transmisión (RTMP / RTSP, HTTP Stream? HTTP Progressive?) Con cierta regularidad y encuentro que la respuesta es una respuesta AND , no una respuesta OR. Digo que ofrezcan inglés y español, pida el cangrejo roto y la langosta, rockee el coupé y el SUV.

Es decir, si puede, ofrezca tanto un formato RTMP de transmisión como un formato HTTP de transmisión. Dado que su servicio se basa en Flash Media Server, es posible que tenga esta opción con menos problemas de lo que cree: un solo feed de Adobe Media Encoder se puede agrupar en tres feeds:

  • RTMP / S- Reproductores Flash Tradicionales (puerto 1935)
  • HDS: transmisión HTTP a Flash Player para Android (puerto 80)
  • HLS: transmisión HTTP para iPads, iPhones y similares (puerto 80)

Probablemente la mayor fortaleza de un servicio basado en Adobe Flash Media Server es que FMS empaqueta estos feeds sobre la marcha desde un solo feed donde otras metodologías requieren feeds separados o archivos codificados alternativamente, aumentando exponencialmente sus demandas de almacenamiento y presupuesto de codificador.

Por supuesto, tendrá que hacer que su equipo de desarrollo web cree una interfaz bastante elegante para que todo esto sea perfecto para su uso (un paso a menudo ignorado, poco apreciado, pero crítico).

Protocolos a favor y en contra: pero primero … Medios progresivos

En primer lugar, consideremos que estamos hablando de transmisión y omitimos la opción de descarga progresiva (que no requiere un servidor de transmisión especializado en absoluto; cualquier servidor web con los tipos MIME / controladores de contenido correctos, etc. entregará contenido multimedia progresivo) sin inconvenientes o sin inconvenientes. No es que un fabricante de servidores comerciales le impida comprar su producto para servir progresivamente los medios a través del puerto 80 – solo considere Apache e IIS si esa es su ruta. Felicitaciones, acaba de ahorrar $ 10K al año.

Los medios progresivos, solo para estar en la misma página, son medios entregados en la web (generalmente el puerto 80 como cualquier contenido web) que descargan su película en su totalidad para reproducirla. El servicio progresivo solo permite al usuario colocar el cabezal de reproducción en un momento que ya ha sido descargado, sin desplazarse hacia adelante en la película para volver a mostrar una escena en el minuto 31:00 si hasta ese momento solo ha descargado la película hasta el minuto 12 : 00. Es una lástima, pero es de baja tecnología y rentable.

Pruebe un ejemplo y haga clic en este video de preparación de café espresso o en el avance de 21 Jump Street. No puede ver ese contenido hasta que se hayan descargado los datos:

Ejemplo progresivo de Vimeo – Elaboración de café expreso

Ejemplo progresivo de Apple Movie Trailer – 21 Jump Street
http://trailers.apple.com/traile…

No se deje engañar por una descarga increíblemente rápida para aquellos de ustedes bendecidos con un circuito GigaMan en su oficina. (En mi oficina, dos). En ese caso, haga clic en la versión “HD” para que pueda ver la descarga del archivo, y tenga en cuenta que no puede hacer clic en adelante para salvar su vida. Un comportamiento favorito personal es ver a los usuarios hacer clic en medios progresivos que se almacenan en caché localmente en su estación de trabajo o se descargan en su LAN gigabit desde un servidor web residente y dicen: “¿Ves? Son transmisiones”. Solución : diríjase a su Marriott local, tome un desayuno gratis, inicie sesión y dígame nuevamente cómo funciona. O, para pensar un poco más con visión de futuro, solicite a su administrador de red que “limite la velocidad” (a través del kit de herramientas QoS de Cisco , por ejemplo) algunos puertos en su oficina cambian a 384 kilobits por segundo, 500 Kbs, 750 Kbs, 1.5 Mbs – enchufe en algunos puntos de acceso inalámbrico de prueba y tiene un banco de pruebas local de bajo ancho de banda. (Por desgracia, sin el gofre gratuito).

Los medios progresivos, aunque obviamente tienen su lugar, no están transmitiendo. Para nuestra discusión, la transmisión:

  • Permitir a los usuarios desplazarse hacia adelante o hacia atrás y reenfundar independientemente de cuánto se haya descargado.
  • No se descargará en su totalidad a un usuario

Protocolos a favor y en contra: pero me estoy desviando …

La diferencia más destacada para su usuario promedio cuando considera RTMP versus HLS HTTP y HDS HTTP streaming es el puerto a través del cual se entrega. Es decir, RTMP utiliza un “1395” único frente a Plain Jane, los movimientos de casi todo en la web a través del puerto HTTP “80”.

¿Es mejor RTMP? Técnicamente, sí, pero nos hemos encontrado con este dilema de la red antes con prácticas de seguridad VPN cuando una metodología técnicamente sólida fue eclipsada y suplantada por una que podía moverse libremente con tráfico web regular. ¿Recuerdas hace unos años (piensa cuando viste “Harry Potter y el prisionero de Azkaban”) tu método para conectarte de forma segura a la red de tu oficina se basó en una tecnología llamada IPsec? Incluso es nativa en tu iPhone original. Es genial, es funcional, funciona, y a veces cuando estoy en un Marriott, o presentándome en la LAN corporativa de otra persona, maldita sea … El conjunto de protocolos IPsec no se enruta tan libremente como el SSL más popular, y muchas veces se bloquea. Las transmisiones RTMP están sujetas a una trampa similar, mientras que las transmisiones HTTP viajan libremente donde se puede cargar cualquier página web.

En el lenguaje del automóvil, piense en el DeLorean “DMC-12”. Evite su mentalidad de la marca contaminada y considere cuán genial era ese automóvil para una audiencia estadounidense en ese momento: paneles de acero inoxidable, motor montado en la parte trasera, bajos de fibra de vidrio diseñados por Colin Chapman. Enfermos. Y simplemente no tomó.

Y una comparación final, y bastante contundente, en términos del léxico cotidiano: la palabra “hipérbole” puede ser elocuente, cada vez más personas se conectarán con los vernáculos más peatonales y dirán “mentiras”.

Entonces, ¿qué mecanismo de entrega es mejor? El punto es discutible si el que eliges está restringido o no se transmite / usa ubicuamente a través de redes globales. (¿Y cuántas personas realmente hablan euskera?).

Dicho esto (en FMS) RTMP puede estar bastante seguro a través de prácticas de transmisión protegidas y, si tiene el conocimiento, puede utilizarse en aplicaciones personalizadas que pueden incorporar video bidireccional, chats, coordenadas de objetos de juego, etc. Por el contrario, HTTP HLS es la única forma en que vas a transmitir contenido a un dispositivo iOS como iPad o iPhone.

¿Cuál usar? En FMS, una sola fuente, de nuevo, se puede combinar en tres fuentes separadas sin mucho alboroto: RTMP (Flash tradicional a través del puerto 1935), HDS (HTTP, puerto 80) y HLS (Apple iOS, puerto 80).

No requiera inglés si puede hablar español y francés de manera nativa y potencialmente triplicar su audiencia.

RTMP, HDS o HLS? La respuesta es sí.

* Un excelente video para principiantes para personas que no están a la altura de las metodologías de entrega de transmisión puede ver el siguiente video de Lynda.com:

Comprender los protocolos de entrega
En funcionamiento con Flash Media Server 4.5 – Lisa Larson-Kelly
Lynda.com

[html]
http://www.lynda.com/home/Displa…”> Arriba y corriendo con Flash Media Server 4.5 | por Lisa Larson-Kelley

Vea todo este curso y más en lynda.com Biblioteca de formación en línea & reg; .

[/ html]

Luis dio una buena (aunque larga) respuesta a su pregunta, pero me gustaría señalar algunas ineficiencias con la entrega del cliente RTMP. En mi opinión, está saliendo por dos razones clave:

1. Inserción dinámica de anuncios

Con protocolos HTTP segmentados como HLS, HDS y DASH, el empalme dinámico en un anuncio es relativamente simple a nivel de transmisión (análisis, orientación al usuario, etc., aún es complejo). Simplemente elimine los segmentos que contienen el pod de anuncios e inserte nuevos segmentos que contengan el anuncio. Con RTMP, esto se hace tradicionalmente cambiando a una nueva conexión RTMP que normalmente resulta en una terrible experiencia de almacenamiento en búfer.

2. Almacenamiento en caché y costo

RTMP es un protocolo persistente que requiere una conexión constante con un AMS. Este requisito aumenta los costos operativos en gran medida, ya que Adobe cobra una licencia por instancia de servidor. Esto también significa que cada cliente necesita mantener el estado con el servidor de origen todo el tiempo, lo que es una carga terrible para su propia CDN o una CDN como Akamai, que de hecho le cobrará por ello.

Con los protocolos HTTP, estos problemas se reducen porque los CDN se diseñaron originalmente para servir páginas web HTTP. Esto les permite maximizar la infraestructura de origen / borde preexistente en lugar de diseñar / mantener nuevos sistemas solo para la entrega de video. Esto reducirá los costos para ellos y, con suerte, para el usuario final.

¿Qué hace bien RTMP?

RTMP sigue siendo un excelente protocolo de “backhaul” de Internet. Es una excelente manera de mover video desde su codificador Live a un CDN u origen que luego puede empaquetarse en los formatos del lado del cliente HTTP y Adobe tampoco. Con la llegada y el impulso hacia su formato HDS, creo que es seguro decir que RTMP para el consumo del usuario final será cosa del pasado en los próximos años debido a los problemas anteriores.

Tendría que estar en desacuerdo con que RTMP siempre sea de mayor rendimiento. Si hace progresivo sobre http, el usuario puede almacenar el contenido en búfer (y el navegador puede almacenar previamente el contenido en el búfer con almacenamiento en caché), lo que mejora significativamente el rendimiento. Si su conexión no es excelente, RTMP siempre se retrasará. Si miras tanto a Youtube como a Vimeo, eligen la entrega progresiva por esta misma razón.

HTML5 es el futuro, y RTMP se está convirtiendo rápidamente en una parte del pasado.

El principal valor ofrecido por RTMP es que durante todo el proceso de transmisión se mantiene una conexión entre el servidor de transmisión y el reproductor de video. Esto garantiza una transmisión de video fluida a pesar de las fluctuaciones en el ancho de banda.

RTMP utiliza el puerto 1935. El diferenciador clave entre RTMP y los servicios de Progressive Streaming que utilizan HTTP es:

  • En RTMP hay un puntero directo desde el servidor de medios al reproductor flash , y solo los datos correspondientes a ese puntero son retenidos por el reproductor flash. No hay almacenamiento en búfer / almacenamiento de datos en la computadora
  • En la transmisión progresiva se crea un búfer estable, comenzando desde el punto de reproducción

RTMP alcanzó su popularidad alrededor de 2012. Desde entonces, con la aparición de la transmisión de velocidad de bits adaptativa, los protocolos de transmisión basados ​​en HTTP se han vuelto mucho más populares. En la transmisión de velocidad de bits adaptativa, cada transmisión de video se compone de múltiples archivos a diferentes resoluciones que requieren diferentes velocidades de bits. Un reproductor de video recibe el archivo de transmisión correspondiente a su tamaño de pantalla y velocidad de conexión a Internet. Este proceso garantiza que si un espectador está viendo inicialmente una transmisión de alta calidad inicialmente con un ancho de banda alto, si la velocidad de Internet disminuye, el reproductor de video cambiará inmediatamente a una transmisión de menor resolución. Uno de los protocolos basados ​​en HTTP que hace esto de manera eficiente es el protocolo de transmisión de video HLS de Apple.

Cuando RTMP mantiene una conexión constante entre el servidor de medios y el reproductor de video, los reproductores de video progresivos en HTTP dependen de un búfer. Esto significa que el video se descarga inicialmente, y es este archivo almacenado en caché local el que se reproduce. HTTP se basa en este búfer para garantizar una reproducción fluida. Sin embargo, si la velocidad de carga del búfer es más lenta que la velocidad de reproducción, su transmisión se retrasará.

Desde el punto de vista de la seguridad, RTMP Encrypted es algo defectuoso, ya que es propenso a los ataques Man-in-the-Middle. Kit de herramientas RTMP: RTMPDump se puede usar fácilmente para descargar transmisiones RTMP.

Espero que esto ayude. Para obtener más información, consulte este artículo que he escrito sobre RTMP en relación con otros protocolos de transmisión.