¿Qué protocolo es mejor para una transmisión de video en vivo desde un servidor a un Android: RTSP, RTMP, HTTP u otra cosa?

La respuesta a esto es algo matizada. Los protocolos de transmisión basados ​​en HTTP como HLS y MPEG-Dash son ampliamente compatibles con los navegadores de Android, pero la naturaleza del protocolo significa que agrega mucha latencia a la transmisión. RTSP y RTMP son protocolos de baja latencia, lo que significa que puede obtener transmisiones al dispositivo con una latencia de menos de un segundo. Sin embargo, lo que sucede con ellos es que es muy probable que necesite implementar un reproductor dentro de una aplicación nativa para que funcione. Red5 Pro es un ejemplo, pero hay otros por ahí. (tenga en cuenta que soy fundador de Red5 Pro)

Escribí una publicación de blog detallada sobre el tema de HLS y cómo se compara con otros protocolos de transmisión que probablemente también ayuden. Transmisión en vivo HTTP – Red5 Pro

También recomendaría echar un vistazo a WebRTC, ya que es un protocolo de baja latencia que es compatible con las versiones actualizadas de Chrome para Android. Creo firmemente que WebRTC jugará un gran factor en la transmisión de video de baja latencia en el futuro cercano.

Entonces, la respuesta a su pregunta es con cuánta latencia puede lidiar y si necesita que la reproducción se realice en un navegador web o en una aplicación nativa. La respuesta a esa pregunta determinará la mejor opción para la entrega de video.

Hay muchos problemas a este respecto, es decir, uno es la facilidad de accesibilidad y el otro es el rendimiento.

Cuando se trata de accesibilidad, el protocolo HTTP es el mejor porque, de manera predeterminada, los medios se transmiten por el puerto 80 en HTTP, que DEFAULT abre en la mayoría de los firewalls. No estoy seguro de si muchas personas aquí lo saben o no, pero para ver un video (ya sea en vivo o en modo de video a pedido), algunos puertos deben abrirse en su firewall. La mayor ventaja de HTTP sobre cualquier otro protocolo como RTMP es que el puerto HTTP (80) siempre es abierto por DEFAULT en su implementación. Por ejemplo, en la mayoría de las universidades que no sean el puerto 80 están bloqueadas por razones de seguridad. Como resultado, no se puede acceder a la secuencia de RTMP (Puerto 1935) (o sus equivalentes) que utiliza otros que no sean el puerto 80.

Es siempre un rendimiento conveniente v / s. Hay algunas soluciones en el mundo HTTP como HLS que Apple descubrió anteriormente, luego también adaptó Microsoft (Smooth Streaming) y finalmente siguió con Android Browsers, que ofrece una simulación de Live HTTP Stream. El problema con HTTP es que HTTP es un protocolo sin conexión, mientras que para la transmisión requiere un protocolo orientado a la conexión como RTMP / RTSP que reduce automáticamente la latencia.

El hecho es que las compañías como Google (Youtube) o Daily Motion utilizan el enfoque de protocolo HTTP solo porque hay problemas mínimos para que los usuarios reproduzcan el video.

En los protocolos orientados a la conexión, los usuarios deben desbloquear el protocolo en tres niveles, es decir, uno en el nivel del sistema operativo , el segundo en el nivel de enrutador / conmutador y el tercero en el nivel de ISP . En la mayoría de los casos, las tres capas están generalmente abiertas para entonces, hay un 20-25% de usuarios que necesitan configurar estos ajustes, como di ejemplo de estudiantes detrás de un firewall universitario o alguna LAN corporativa de oficina altamente segura.

Tengo experiencia en transmisión de casi una década ahora. Entonces, esto es lo que he implementado ahora

Mi programa primero se conecta a un cliente con un protocolo RTMP. Si se conecta, entonces está bien; de lo contrario, espera entre 10 y 20 segundos, si RTMP falla (lo que significa que este protocolo se está bloqueando en algún nivel), entonces mi código cambia automáticamente al Protocolo HTTP. (Tenga en cuenta que también hay algunos protocolos híbridos como RTMPT que tienen propiedades de RTMP y HTTP, pero al final, si el usuario está buscando hacer el mejor uso del ancho de banda, siempre se prefiere un protocolo orientado a la conexión como RTMP).

También tenga en cuenta que WebRTC es el protocolo del futuro, ya que se integra aparentemente con la programación de la interfaz de usuario (Javascript y también tiene soporte de navegador de varios tipos). Mira este video

Google: ¿Qué sigue para WebRTC?

Puede ver sus muestras en vivo en las muestras de WebRTC

En resumen, RTMP es mejor que HTTP, pero ¿tiene usuarios educados en TI que puedan encargarse de la configuración o su programa es lo suficientemente inteligente como para implementar planes alternativos de cambio de un protocolo a otro en caso de detección de un bloqueo de puerto? También WebRTC es algo nuevo que puede sorprendernos a todos. Veamos.

Gracias por A2A

No estoy seguro de qué protocolo se adaptará mejor a sus necesidades. Esto depende de varios factores como su presencia geográfica, ancho de banda y opciones de conectividad, su proveedor de servicios de alojamiento, etc.

Lo que sugiero es que puede echar un vistazo a Muvi, una plataforma OTT multipantalla de extremo a extremo que puede ayudarlo a lanzar su propio servicio de transmisión de audio y video de marca y en vivo al instante. Muvi admite todos los formatos conocidos de transmisión en vivo RTMP y HLS Feeds, satélite directo y alimentación de cámara, P2P Live Streaming.

Muvi incluye todo:

  • Infraestructura de TI, hosting, DRM, CDN, reproductor de video en línea
  • Múltiples opciones de monetización como Suscripción, Ad-ad, Pay-Per-View o ejecutar una combinación de todas. Incluso puede vender bienes físicos y mercancías junto con sus contenidos en vivo.
  • CMS único para administrar todo, desde plataforma, aplicaciones, biblioteca de contenido, usuarios, ingresos, análisis
  • Integraciones de pasarela de pago listas para usar directamente vinculadas a sus cuentas bancarias. Sin ingresos compartidos
  • Completamente marcado en blanco con la marca de su empresa sin la mención de Muvi en ningún lado.

Muvi está repleto de funciones para proporcionar la mejor experiencia de transmisión de usuario.

Prueba Muvi durante 14 días absolutamente gratis. No se requiere tarjeta de crédito.

Con una tecnología cada vez mayor para plataformas de video a pedido (VOD), le permite incluir aplicaciones de marca para sus videos que se pueden ver fácilmente en Android: Preguntas frecuentes de Uscreen: ¿Qué son las aplicaciones nativas?

Las aplicaciones nativas son aplicaciones con su marca, colores, apariencia que se inician, mantienen y actualizan en las tiendas de aplicaciones (incluido Google Play y ya está incluido en la plataforma). Por lo tanto, puede obtener su propia aplicación de video de Android (para sus propios sitios web de video independientes) en la tienda de aplicaciones que publica y mantiene completamente el proveedor de VOD.

Dichas aplicaciones para diferentes dispositivos significan que sus clientes pueden visitar la tienda de aplicaciones, descargar su aplicación y obtener acceso a su contenido, y todos ellos podrían integrarse fácilmente en su sitio web VOD premium mediante varios pasos simples: Uscreen – Aplicaciones de marca

Supongo que una biblioteca RTMP es la mejor respuesta, en este caso.

Debería usar SDK como una biblioteca de transmisión de video en vivo para Android, ya que le brinda la oportunidad de integrarlo de manera rápida y fácil, transmitiendo en vivo en múltiples redes y cualquier CDN, incluidos Facebook, YouTube, Twitter Periscope y Twitch. Si ayuda, conozco un poderoso OpenSDK que funciona sin problemas, siendo extremadamente confiable. Wowza también tiene una biblioteca de transmisión, pero prefiero la Streamaxia.

¡Espero que esto ayude! Feliz transmisión!

Realmente me gustaría recomendarle que use el SDK de Wowza GoCoder para transmitir un video en vivo en Android. GoCoder SDK utiliza el protocolo RTMP de baja latencia para sus necesidades de transmisión en vivo en tiempo real. Si realmente desea crear la próxima aplicación de periscopio, entonces el SDK de GoCoder es la plataforma adecuada para usted.

Por favor, consulte la página del producto GoCoder

Kit de desarrollo de software Wowza GoCoder

hola amigo

Prueba este jugador que admite RTMP, HLS, etc. para la transmisión de video en vivo y también tiene varias características ejemplares como,

  • Anuncios de preroll y postroll
  • Compartiendo socialmente
  • Calificación y comentarios
  • Control a través de teclados
  • Google Analytics y muchos más !!!

Saludos 🙂

HTTP es el mejor para la transmisión multimedia de Android.