¿Cómo funciona la transmisión de video?

La transmisión de video funciona dividiendo un video en pequeños trozos y enviándolos a través de la red para volver a ensamblarlos y reproducirlos en su destino final. A diferencia de las descargas, transmite datos como un flujo continuo, por lo que puede ver o escuchar casi de inmediato. De hecho, la transmisión de archivos puede ser difícil de guardar. Desaparecen tan pronto como hayas terminado.

Me gusta la metáfora del viaje de DaCast para los términos ‘protocolo de transmisión’, ‘códec’ y ‘formato de contenedor’. Imagine que es un servicio de entrega que transporta productos, como ropa, a granel (los productos son el video). El códec será una máquina que comprime la ropa en un paquete para ahorrar espacio. El formato del contenedor es un vagón donde se empaquetan estos paquetes. Y el protocolo de transmisión son las vías del ferrocarril, las señales y los conductores que lo entregan al destino.

Entonces, si desea tener una idea de la arquitectura de un sitio web de transmisión de video , imagine un pastel de tres capas. La capa superior es el software del cliente, la inferior: el componente del servidor y, en el medio, el componente de distribución.

El componente del servidor toma los fragmentos segmentados de flujo, los viste en un formato adecuado y se prepara para su distribución.

El componente de distribución entrega los medios y los recursos asociados al cliente por solicitud. Para la distribución a gran escala, también se pueden utilizar redes de borde u otras redes de entrega de contenido.

El software del cliente determina el video a solicitar, continuamente descarga y vuelve a ensamblar los fragmentos de contenido de transmisión en un formato digerible.

Conseguir que estos tres estén correctamente alineados es la clave del éxito.

Aquí están los detalles: Cómo crear un sitio web de transmisión de video como Netflix, Amazon o Hulu

Espero que pueda ayudar.

Pasos para comenzar una transmisión de video:

  • Cifre video de su metraje en vivo usando un software de transmisión de video decente. Puede obtener un excelente video de 1080p a ~ 4-8 Mbps con un codificador adecuado.

  • El video debe ser complicado en un paquete de formatos como MP4 o MPEG-TS. Asegúrese de crear un archivo personal por cada pocos segundos que oscilaría entre 2 y 10 segundos por sección. Tal fenómeno se acuña como fragmentación.

  • Escriba un archivo inequívoco que le informe sobre el orden en que entran estos segmentos y dé acceso a las secciones a través de HTTP.
  • Si nos fijamos en el lado del cliente, obtenemos lo obvio para asegurar los términos de los segmentos. Descárguelos y mientras su video se está ejecutando, siga descargando más porciones. Descargue un manifiesto actualizado regularmente para obtener información actualizada.
  • También puede codificar el contenido de video usando el software de transmisión tantas veces como desee incorporando resoluciones contrastantes y tasas de bits. Esta codificación se realiza para garantizar que la desintegración tenga lugar en el mismo lugar en cada transmisión de video.

  • Aquí, el usuario final puede introducir ciertos cálculos para medir su rango de frecuencia utilizable y lograr diferentes velocidades de bits para mejorar la participación del usuario.

Espero que esto responda a su consulta. 🙂

Escribí un artículo sobre lo mismo. Espero eso ayude.

https://www.linkedin.com/pulse/b

Archivos HLS

HLS (HTTP Live Streaming) es un protocolo de comunicaciones de transmisión de medios basado en HTTP implementado por Apple Inc. Este es el protocolo que utilizan la mayoría de las aplicaciones de transmisión en línea. Al comienzo de la sesión de transmisión, HLS descarga una lista de reproducción M3U que contiene los metadatos para las diferentes subtransmisiones disponibles.

# EXTM3U

# VERSIÓN EXT-X: 3

# EXT-X-SEGMENTOS INDEPENDIENTES

# EXT-X-STREAM-INF: BANDWIDTH = 268400, AVERAGE-BANDWIDTH = 268400, CODECS = “avc1.66.30, mp4a.40.2”, FRAME-RATE = 25.000, CLOSED-CAPTIONS = NONE
http://ipl20171-i.akamaihd.net/hls/… . / master_Layer3.m3u8

# EXT-X-STREAM-INF: BANDWIDTH = 268400, AVERAGE-BANDWIDTH = 268400, CODECS = “avc1.66.30, mp4a.40.2”, FRAME-RATE = 25.000, CLOSED-CAPTIONS = NONE
http://ipl20171-i.akamaihd.net/… . / master_Layer3.m3u8

# EXT-X-STREAM-INF: BANDWIDTH = 510400, AVERAGE-BANDWIDTH = 510400, CODECS = “avc1.66.30, mp4a.40.2”, FRAME-RATE = 25.000, CLOSED-CAPTIONS = NONE
http://ipl20171-i.akamaihd.net/… / master_Layer4.m3u8

# EXT-X-STREAM-INF: BANDWIDTH = 510400, AVERAGE-BANDWIDTH = 510400, CODECS = “avc1.66.30, mp4a.40.2”, FRAME-RATE = 25.000, CLOSED-CAPTIONS = NONE
http://ipl20171-i.akamaihd.net/… . / master_Layer4.m3u8

# EXT-X-STREAM-INF: BANDWIDTH = 950400, AVERAGE-BANDWIDTH = 950400, CODECS = “avc1.66.30, mp4a.40.2”, FRAME-RATE = 25.000, CLOSED-CAPTIONS = NONE
http://ipl20171-i.akamaihd.net/… / master_Layer5.m3u8

# EXT-X-STREAM-INF: BANDWIDTH = 950400, AVERAGE-BANDWIDTH = 950400, CODECS = “avc1.66.30, mp4a.40.2”, FRAME-RATE = 25.000, CLOSED-CAPTIONS = NONE
http://ipl20171-i.akamaihd.net/… . / master_Layer5.m3u8

# EXT-X-STREAM-INF: BANDWIDTH = 1500400, AVERAGE-BANDWIDTH = 1500400, CODECS = “avc1.66.30, mp4a.40.2”, FRAME-RATE = 25.000, CLOSED-CAPTIONS = NONE
http://ipl20171-i.akamaihd.net/… / master_Layer6.m3u8

# EXT-X-STREAM-INF: BANDWIDTH = 1500400, AVERAGE-BANDWIDTH = 1500400, CODECS = “avc1.66.30, mp4a.40.2”, FRAME-RATE = 25.000, CLOSED-CAPTIONS = NONE
http://ipl20171-i.akamaihd.net/… . / master_Layer6.m3u8

# EXT-X-STREAM-INF: BANDWIDTH = 2270400, AVERAGE-BANDWIDTH = 2270400, CODECS = “avc1.42c01f, mp4a.40.2”, FRAME-RATE = 25.000, CLOSED-CAPTIONS = NONE
http://ipl20171-i.akamaihd.net/… / master_Layer7.m3u8

# EXT-X-STREAM-INF: BANDWIDTH = 2270400, AVERAGE-BANDWIDTH = 2270400, CODECS = “avc1.42c01f, mp4a.40.2”, FRAME-RATE = 25.000, CLOSED-CAPTIONS = NONE
http://ipl20171-i.akamaihd.net/… . / master_Layer7.m3u8

# EXT-X-STREAM-INF: BANDWIDTH = 72600, AVERAGE-BANDWIDTH = 72600, CODECS = “avc1.42c015, mp4a.40.2”, FRAME-RATE = 25,000, CLOSED-CAPTIONS = NONE
http://ipl20171-i.akamaihd.net/… / master_Layer1.m3u8

# EXT-X-STREAM-INF: BANDWIDTH = 72600, AVERAGE-BANDWIDTH = 72600, CODECS = “avc1.42c015, mp4a.40.2”, FRAME-RATE = 25,000, CLOSED-CAPTIONS = NONE
http://ipl20171-i.akamaihd.net/… . / master_Layer1.m3u8

# EXT-X-STREAM-INF: BANDWIDTH = 134200, AVERAGE-BANDWIDTH = 134200, CODECS = “avc1.42c015, mp4a.40.5”, FRAME-RATE = 25.000, CLOSED-CAPTIONS = NONE
http://ipl20171-i.akamaihd.net/… / master_Layer2.m3u8

# EXT-X-STREAM-INF: BANDWIDTH = 134200, AVERAGE-BANDWIDTH = 134200, CODECS = “avc1.42c015, mp4a.40.5”, FRAME-RATE = 25.000, CLOSED-CAPTIONS = NONE
http://ipl20171-i.akamaihd.net/… . / master_Layer2.m3u8

Como puede ver en la lista de reproducción m3u8 de muestra anterior, hay varios perfiles según el ancho de banda en el que se transmiten. Player elige el perfil más adecuado según el ancho de banda de la red en la que se realiza la transmisión.

Archivo M3U y trozos .ts

Como se ve en la lista de reproducción m3u8 anterior, hay muchos archivos m3u8 diferentes disponibles. Estos archivos m3u8 contienen archivos .ts que son fragmentos del video transcodificado. A continuación se muestra un ejemplo

# EXTM3U
# DURACIÓN EXT-X-OBJETIVO: 10
# SECUENCIA DE MEDIOS EXT-X: 0
#EXTINF: 10,
3340 / 33400.ts
#EXTINF: 10,
3340 / 33401.ts
#EXTINF: 10,
3340 / 33402.ts
#EXTINF: 10,
3340 / 33403.ts
#EXTINF: 10,
3340 / 33404.ts
#EXTINF: 10,
.
.
.
# EXT-X-ENDLIST

El “# EXT-X-TARGETDURATION: 10” sugiere que cada fragmento tiene una duración de 10 segundos.

Cuando comienza la reproducción, el reproductor primero busca los archivos hls, luego el archivo m3u8 en función de las condiciones de la red y luego los archivos / trozos .ts individuales del archivo m3u8 seleccionado. Estos fragmentos más pequeños son fáciles de descargar para el reproductor y requieren menos ancho de banda en lugar de intentar transmitir un archivo completo completo.

Red de entrega de contenido (CDN)

Si está apuntando a una audiencia mundial o si sus servidores están en algún lugar lejos de su ubicación de destino, los CDN aparecerán. CDN no es más que un servidor proxy implementado en un centro de datos. Dado que es una red distribuida globalmente, acerca su contenido al usuario para que la pérdida de datos y paquetes sea menos comparable a la transmisión desde el servidor de origen. Akamai, Cloudflare, Cloudfront, Limelight, etc. son tales CDN.

Para mejorar la calidad de transmisión en la red de datos móviles, los operadores también proporcionan sus propios CDN. Esto, en combinación con el CDN del servicio OTT, hace que la experiencia de transmisión sea mucho mejor en la red de datos móviles respectiva, ya que acerca el servidor de contenido al usuario final.

Entonces, la próxima vez que vea un video en Youtube, Netflix, Hulu o cualquier otro proveedor de OTT, sabrá lo que está sucediendo dentro del reproductor en su red. Cada minuto de cambio en la calidad del video es un cambio entre el perfil de video que se llama Adaptive Streaming . Cada falla de reproducción es un fragmento faltante o un archivo m3u8 dañado.

La transmisión de video no es más que enviar y recibir paquetes de video utilizando protocolos IP estándar.

Hay un servidor con la transmisión (digamos una película).
Hay un cliente que quiere ver la película. Hay dos opciones: descargar la película completa y luego mirarla (bastante lento …) o solicitar la transmisión. Durante la transmisión, el servidor comienza a enviar paquetes. Cuando hay suficientes paquetes en el cliente para formar algunos cuadros, el cliente comienza a jugar. Mientras el cliente está jugando, el servidor sigue enviando paquetes. Si no hay suficiente ancho de banda y el cliente se queda sin paquetes, el cliente se detiene y mantiene el “almacenamiento en búfer”, de lo contrario, el video se transmite hasta que el cliente reproduce toda la película. En el cliente, los paquetes visualizados se descartan, por lo que no es necesario almacenar películas grandes, a menos que las haya comprado y pueda verlas nuevamente.

El creciente requerimiento y las necesidades de un sistema de comunicación efectivo entre individuos y organizaciones en todo el mundo está conduciendo al desarrollo de sistemas de comunicación eficientes y efectivos. Las personas y organizaciones están experimentando una creciente necesidad de interfaces de video para fines de comunicación. El video se ha convertido en uno de los modos de comunicación preferidos, ya que proporciona un alto compromiso en tiempo real para los usuarios y su eficacia.

Obtenga más información sobre la transmisión de video: The Insight Partners