Transmisión de medios y conocimientos relacionados con la transmisión en vivo.


Prefacio

Este artículo explica principalmente los conocimientos relacionados con la transmisión de medios y su transmisión en vivo, los conocimientos involucrados son relativamente simples y son principalmente para una comprensión simple.


1. Transmisión de medios

1. Conceptos básicos

Los medios de transmisión también se denominan medios de transmisión, lo que significa que los comerciantes utilizan un servidor de transmisión de video (por ejemplo: vlc) para enviar programas (por ejemplo: xxxx.mp4) como paquetes de datos y transmitirlos a la red. Después de que el usuario descomprima los datos a través de un dispositivo de descompresión, el programa se mostrará como estaba antes de enviarlo.

Los llamados medios de streaming se refieren al formato de medios que se reproduce en Internet mediante la transmisión de streaming. Tales como: archivos de audio, video o multimedia. La transmisión de medios no descarga el archivo completo antes de reproducirlo , solo almacena la parte inicial del contenido en la memoria. El flujo de datos de los medios de transmisión se transmite y reproduce en cualquier momento, pero hay un cierto retraso al principio. La tecnología clave para la implementación de medios de streaming es la transmisión por streaming. Logra descargar y jugar al mismo tiempo .

2. Transmisión

La forma tradicional de transmitir información multimedia, como audio y vídeo, a través de Internet es descargarla completamente y luego reproducirla. La descarga suele tardar varios minutos o incluso horas.

Usando tecnología de transmisión de medios , se puede realizar la transmisión de transmisión, y el sonido, las imágenes o las animaciones se transmiten de forma continua e ininterrumpida desde el servidor a la computadora del usuario, que no tiene que esperar a que se descargue el archivo completo, solo necesita algunos Segundos o más de diez segundos. Retraso de inicio para mirar . Mientras el audio, vídeo, etc. se reproducen en la máquina del usuario, el resto del archivo continúa descargándose desde el servidor.

Protocolos de red: http, rtmp, rtsp, rtp/rtcp, udp, tcp

Hay dos formas de implementar la transmisión: transmisión en tiempo real y transmisión progresiva.

  • Transmisión secuencial : Descarga secuencial. Los usuarios pueden ver medios en línea mientras descargan archivos. En un momento dado, los usuarios solo pueden ver la parte descargada y no pueden saltar a la parte anterior que aún no se ha descargado. A la transmisión secuencial no le gusta la transmisión en tiempo real. , se ajusta durante la transmisión en función de la velocidad de la conexión del usuario.
    • Nginx, servidor web; archivo mp4/flv/mov/mkv/ts/rmvb; http
  • Transmisión en tiempo real : asegúrese de que el ancho de banda de la señal multimedia coincida con la conexión de red para que los medios se puedan ver en tiempo real.
    • RTP/rtcp

Insertar descripción de la imagen aquí

3. Principios de la tecnología de transmisión de medios

La implementación de streaming requiere almacenamiento en caché.

En la implementación de la transmisión por secuencias, HTTP/TCP se usa generalmente para transmitir información de control y RTP/UDP se usa para transmitir datos de sonido en tiempo real.

Por lo general, la capacidad requerida del caché no es grande (gop:ibbpbbpbbp...), porque el caché usa una estructura de lista enlazada circular para almacenar datos: al descartar el contenido que se ha reproducido, la transmisión puede reutilizar el espacio de caché vacante para almacenar en caché el contenido posterior no reproducido.

4. Modo de transmisión de medios en streaming

La razón por la que los medios de transmisión pueden realizar la reproducción en tiempo real de datos multimedia es que adoptan un protocolo de control de red especializado y un mecanismo de transmisión de datos. El servidor tiene un sistema de publicación de medios de transmisión dedicado, mientras que el cliente tiene un reproductor dedicado. Ambas partes necesitan almacenar en caché los datos a través del área de caché de datos.

5. Marco del sistema de transmisión de medios de streaming H.264

Insertar descripción de la imagen aquí

2. Transmisión en vivo

1. Protocolos de transmisión de medios utilizados en transmisiones en vivo

RTMP, acrónimo de Protocolo de mensajería en tiempo real. Este protocolo se basa en
TCP y es un conjunto de protocolos que incluye el protocolo básico RTMP y RTMPT/RTMPS/RTMPE y otras variantes. RTMP es un protocolo de red diseñado para la comunicación de datos en tiempo real. Se utiliza principalmente para la comunicación de audio, video y datos entre la plataforma Flash/AIR y los servidores interactivos/de medios de transmisión que admiten el protocolo RTMP.

RTMP se basa en flash y no se puede reproducir en navegadores iOS, pero su rendimiento en tiempo real es mejor que HLS.

HLS, HTTP Live Streaming (tecnología de transmisión en vivo HTTP), la tecnología adaptativa de velocidad de bits dinámica de Apple. Utilizado principalmente para servicios de audio y vídeo en PC y terminales Apple. Incluyendo un archivo de índice m3u(8), un archivo de fragmento de medios TS y un archivo de cadena cifrada con clave.

2. División de módulos de transmisión en vivo.

  • Final de grabación de video : Generalmente es un dispositivo de entrada de audio y video en una computadora o una cámara o micrófono en un teléfono móvil, actualmente el video del teléfono móvil es el principal. Tecnología: webRTC (propósito: grabación de video H5)
  • Reproductor de vídeo : Puede ser el reproductor del ordenador, el reproductor Nativo del teléfono móvil, o la etiqueta de vídeo H5, etc. Actualmente, el reproductor Nativo del teléfono móvil es el principal. Tecnología: protocolo HLS o protocolo RTMP (propósito: reproducción de video), ffmpeg (propósito: decodificación de video móvil cuando se usa el protocolo RTMP)
  • Servidor de vídeo : normalmente un nginx/s rs/.El servidor se utiliza para aceptar la fuente de video proporcionada por el extremo de grabación de video y proporcionar servicios de transmisión por secuencias al extremo de reproducción de video. Tecnología: protocolo RTMP (propósito: cargar secuencias de video), módulo nginx rtmp o SRS (simple-rtmp-server) (propósito: servidor de transmisión)

Insertar descripción de la imagen aquí

3. Proceso de transmisión de video en vivo.

El proceso de video en vivo se puede dividir en los siguientes pasos:
recopilación -> procesamiento -> codificación y encapsulación -> envío al servidor -> distribución de transmisión del servidor -> reproducción de transmisión del reproductor
Insertar descripción de la imagen aquí

①. Envía la transmisión al servidor.

Hay tres protocolos push principales:

  • RTSP (Protocolo de transmisión en tiempo real) : protocolo de transmisión en tiempo real, un protocolo de transmisión multimedia utilizado para controlar el sonido o el video;
  • RTMP (Protocolo de mensajería en tiempo real)
    : protocolo de mensajería en tiempo real, un protocolo abierto desarrollado por Adobe para la transmisión de audio, vídeo y datos entre reproductores Flash y servidores ;
  • HLS (HTTP Live Streaming) : es un protocolo de transmisión de medios de streaming basado en HTTP implementado por Apple;

El protocolo RTMP se basa en TCP y es un protocolo de red diseñado para la comunicación de datos en tiempo real. Se utiliza principalmente para la
comunicación de audio, video y datos entre la plataforma flash/AIR y el servidor interactivo/de medios de transmisión que admite el protocolo RTMP. El software que admite este protocolo incluye Adobe Media Server/Ultrant Media
Server/red5, etc.

Viene en tres variantes:

  • RTMP es un protocolo de texto claro que funciona sobre TCP y utiliza el puerto 1935;
  • RTMPT está encapsulado en solicitudes HTTP y puede atravesar firewalls;
  • RTMPS es similar a RTMPT, pero utiliza una conexión HTTPS;

RTMP es actualmente el protocolo de transmisión de medios de transmisión convencional y se usa ampliamente en el campo de la transmisión en vivo, se puede decir que la gran mayoría de los productos de transmisión en vivo en el mercado adoptan este protocolo.

② Distribución del flujo del servidor

La función del servidor de medios de transmisión es ser responsable de las funciones de lanzamiento y distribución de retransmisión de transmisiones en vivo.

Pero elegí Nginx, que es un excelente servidor web gratuito que puede ampliar la función de transmisión en vivo a través de complementos.
Nginx, srs, crtmpserver,
Live555, darwin,
webrtc


Mi qq: 2442391036, ¡bienvenido a comunicarnos!


Supongo que te gusta

Origin blog.csdn.net/qq_41839588/article/details/133187757
Recomendado
Clasificación