Saltar al contenido principal

Explore una arquitectura simple de servicio de transmisión de video

  • El servicio de transmisión de video se refiere a un servicio que transmite datos de video en tiempo real. Dado que estos servicios transmiten datos de video en tiempo real, se requiere tecnología para comprimir y transmitir datos en tiempo real. Estas tecnologías incluyen captura, compresión, codificación, decodificación y reproducción de video.
  • Servicios como Netflix, Disney+, YouTube y Twitch son servicios que brindan servicios de transmisión de video. Estos servicios son utilizados por muchos usuarios en todo el mundo y procesan grandes cantidades de datos. Debido al desarrollo de las redes, los servicios de streaming son cada vez más avanzados y también están surgiendo servicios que brindan vídeo de alta definición como 4K y 8K.
  • Tengo curiosidad acerca de la estructura de estos servicios, así que echemos un vistazo a una arquitectura simple de servicio de transmisión de video. Tiene varias estructuras según el servicio, pero esta vez veremos una arquitectura simple de servicio de transmisión de video.
    • El servicio real es mucho más complejo y utiliza una variedad de tecnologías, así que utilícelo solo como referencia.

Arquitectura del servicio de transmisión de video

  • A continuación se muestra una arquitectura simple de servicio de transmisión de video.
  • El servicio de transmisión de video consta en gran medida de SendDevice, que transmite datos de video, Server, que procesa datos de video en el servidor, y WatchDevice, que recibe datos de video.
  • Cada uno desempeña los siguientes roles.
    • SendDevice: Responsable de capturar y comprimir datos de video.
    • Servidor: Responsable de procesar y transmitir datos de vídeo.
    • WatchDevice: Responsable de recibir y reproducir datos de video desde el servidor.

Diagrama de arquitectura del servicio de transmisión de video

Enviar dispositivo

  • Al transmitir en servicios como Youtube o Twitch, SendDevice puede ser la computadora o el dispositivo móvil del usuario que transmite.
  • SendDevice es responsable de capturar y comprimir datos de video. En esta estructura, el proceso de capturar y comprimir datos de video es un proceso de procesamiento de datos de video en tiempo real, por lo que se requiere alta velocidad y estabilidad.
  • La razón por la que los datos de vídeo se comprimen antes de enviarlos al servidor es para ahorrar ancho de banda de la red. Los costos de red son un problema que requiere mucho dinero. Dado que los datos de vídeo son una continuación de los datos de imágenes, comprimirlos puede ahorrar ancho de banda.
    • Comprima datos de video utilizando códecs de compresión de video como H.264, H.265 y códecs de compresión de audio como AAC y MP3.
  • En SendDevice, los datos de vídeo comprimidos se envían al servidor.
    • Sin embargo, hay casos en los que SendDevice transmite datos de vídeo al servidor sin compresión. En este caso, se requiere un proceso adicional de compresión de los datos de vídeo en el servidor.

Servidor

  • El servidor es responsable de procesar y transmitir datos de video. El servidor recibe datos de video, los procesa y los transmite a WatchDevice.
  • El servidor puede constar de uno o varios servidores. Los servicios a gran escala constan de múltiples servidores.
  • Prepare previamente datos de video de varias resoluciones, como 540p, 720p, 1080p, 4K, etc. y transmita datos de video de la resolución adecuada a pedido del usuario.
    • Los datos de vídeo con la resolución adecuada deben transmitirse según las condiciones de la red del usuario.
    • Si se transmiten datos de vídeo de resolución adecuada a petición del usuario, el usuario puede ver el vídeo rápidamente.
    • El proceso de transmisión de datos de vídeo de resolución adecuada según la solicitud del usuario se denomina Streaming de velocidad de bits adaptable.
  • El servidor recibe y procesa datos de video de la siguiente manera.
    • Realiza el proceso de recibir datos de vídeo y dividirlos en segmentos.
      • Un segmento es una unidad que divide y transmite datos de vídeo. Los segmentos se dividen en determinadas longitudes y se transmiten, y WatchDevice recibe y reproduce los segmentos.
      • El proceso de dividir los datos de video ingresados ​​inicialmente en segmentos se llama segmentación.
      • Los segmentos se transmiten mediante protocolos como HTTP Live Streaming (HLS) o MPEG-DASH.
      • Sin dividir los datos del video, los usuarios no podrán reproducir el video rápidamente. La transmisión en segmentos permite a los usuarios reproducir el vídeo rápidamente.
    • Enviar segmento a CDN.
      • CDN significa Red de entrega de contenido.
      • CDN consta de servidores distribuidos por todo el mundo y puede entregar contenido rápidamente a los usuarios.

RelojDispositivo

  • WatchDevice es responsable de recibir y reproducir datos de video desde el servidor. WatchDevice puede ser la computadora o el dispositivo móvil del usuario que mira el video.
  • WatchDevice recibe segmentos de CDN y los reproduce. Un segmento son datos de vídeo divididos en determinadas longitudes. Los segmentos se transmiten mediante protocolos como HTTP Live Streaming (HLS) o MPEG-DASH.
  • WatchDevice recibe el segmento, lo decodifica y lo reproduce. La decodificación se refiere al proceso de decodificar datos de video y la reproducción se refiere al proceso de mostrar datos de video en la pantalla.