Cómo desarrollar una aplicación de vídeo en vivo
1. Arquitectura técnica de transmisión en vivo:
SDK de colección de videos en vivo (PC/IOS/Android) - Live CDN
(Aceleración de distribución de transmisión en vivo) - —SDK del reproductor de video en vivo (PC/IOS/Android)
2. Proceso general de procesamiento de audio y video:
Recopilación de datos → codificación de datos → transmisión de datos (servidor de medios de transmisión) → Decodificar datos → reproducir y mostrar
1. Recopilación de datos:
Las cámaras y captadores recopilan datos de video y audio, y lo que se obtiene en este momento son datos originales
Tecnología o protocolo involucrado:
Cámara: CCD, CMOS
Captador: dispositivo de conversión acústico a eléctrico (micrófono), circuito de amplificación de audio
2. Codificación de datos:
Utilice hardware o software relevante para codificar (digitalizar) y procesar datos originales de audio y video (como mezclas de audio y video, empaquetado, etc.) para obtener datos de audio y video utilizables
Tecnologías o protocolos involucrados:
Método de codificación: CBR, VBR
Formato de codificación
Vídeo: H.265, H.264, MPEG- 4, etc., los contenedores de embalaje incluyen TS, MKV, AVI, MP4, etc.
Audio: G.711μ, AAC, Opus, etc., encapsulado con MP3, OGG, AAC, etc. p>
3. Transmisión de datos:
Transmitir los datos codificados de audio y video En los primeros días, el audio y el video se transmitían a través de cables como los cables coaxiales. Se utilizaron redes para una óptima transmisión
Involucrando tecnologías o protocolos:
Protocolos de transmisión: RTP y RTCP, RTSP, RTMP, HTTP, HLS (HTTP Live Streaming), etc.
Señalización de control: SIP, SDP, SNMP, etc.
4 Decodificación de datos:
Utilice hardware o software relevante para decodificar los datos de audio y video codificados recibidos para obtenerlos. imágenes/sonidos que se pueden mostrar directamente
Tecnologías o protocolos que involucran:
Generalmente, el codificador correspondiente tendrá un decodificador correspondiente y también existen algunos complementos de decodificación de terceros. , etc.
5. Visualización de reproducción:
En el monitor (muestra las imágenes o sonidos correspondientes en televisores, monitores, etc.) o altavoces (auriculares, altavoces, etc.)
Tecnologías o protocolos involucrados:
Monitores, parlantes, gafas 3D, etc.
Protocolos comunes relacionados con transmisiones de video en vivo:
1. RTMP (Real Time Messaging Protocol, protocolo de mensajería en tiempo real)
RTMP es Flash de Adobe Systems. Un protocolo abierto desarrollado para la transmisión de audio, vídeo y datos entre reproductores y servidores. Tiene tres variantes:
1), un protocolo de texto claro que funciona sobre TCP, usando el puerto 1935
2), RTMPT está encapsulado en solicitudes HTTP y puede atravesar firewalls; ;
3) RTMPS es similar a RTMPT, pero utiliza una conexión HTTPS;
Flash utiliza el protocolo RTMP para la transmisión de objetos, vídeo y audio. Este protocolo está construido sobre el protocolo TCP o el protocolo HTTP de sondeo. El protocolo RTMP es como un contenedor que se utiliza para contener paquetes de datos. Los datos pueden ser datos en formato AMF o datos de video y audio en FLV. Una sola conexión puede transmitir múltiples flujos de red a través de diferentes canales, y los paquetes en estos canales se transmiten en paquetes de tamaño fijo.
2. RTSP (Protocolo de transmisión en tiempo real, Protocolo de transmisión en tiempo real)
RTSP define cómo una a muchas aplicaciones pueden transmitir datos multimedia de manera efectiva a través de redes IP.
RTSP proporciona un marco extensible y las fuentes de datos pueden incluir datos en tiempo real y datos almacenados existentes. El propósito de este protocolo es controlar múltiples conexiones de envío de datos, proporcionar una forma de seleccionar canales de envío como UDP, UDP de multidifusión y TCP, y proporcionar un método para seleccionar un mecanismo de envío basado en RTP.
La sintaxis y el funcionamiento de RTSP son similares a HTTP/1.1, pero no pone especial énfasis en la sincronización horaria, por lo que es más tolerante con los retrasos de la red. La función de almacenamiento en caché del servidor proxy también es aplicable a RTSP y, debido a que RTSP tiene una función de redirección, el servidor que proporciona el servicio se puede cambiar de acuerdo con la situación de carga real para evitar retrasos causados por una carga excesiva concentrada en el mismo servidor.
3. RTP (Protocolo de transporte en tiempo real)
RTP es un protocolo de capa de transporte para flujos de datos multimedia. Detalla la transmisión de audio y vídeo en Internet. para vídeo. El protocolo RTP se usa comúnmente en sistemas de transmisión de medios (con el protocolo RTCP), videoconferencias y sistemas push-to-talk (con H.323 o SIP), lo que lo convierte en la base técnica de la industria de la telefonía IP.
RTP se basa en el protocolo UDP y a menudo se utiliza junto con RTCP. No proporciona un mecanismo de entrega puntual ni otras garantías de calidad de servicio (QoS). implementar este proceso.
RTP no garantiza la entrega ni evita la entrega fuera de orden, ni tiene certeza sobre la confiabilidad de la red subyacente. Simplemente envía, independientemente de si los paquetes se pierden durante la transmisión y de si. si el receptor recibe el paquete. RTP implementa la transmisión ordenada. El número de secuencia en RTP permite al receptor reorganizar la secuencia de paquetes del remitente. Al mismo tiempo, el número de secuencia también se puede utilizar para determinar la posición adecuada del paquete. Por ejemplo, en la decodificación de video, la decodificación secuencial. requerido.
4. RTCP (Protocolo de control de transporte en tiempo real)
RTCP es un protocolo de soporte para RTP, que proporciona control fuera de canal para transmisiones de medios RTP. RTCP y RTP trabajan juntos para empaquetar y enviar datos multimedia, transmitiendo periódicamente datos de control entre los participantes en una sesión de transmisión multimedia.
La función principal de RTCP es proporcionar retroalimentación sobre la calidad de servicio (QoS) proporcionada por RTP y recopilar información estadística sobre las conexiones de medios relacionadas, como la cantidad de bytes transmitidos, la cantidad de paquetes transmitidos, la cantidad de paquetes perdidos, la latencia de red unidireccional y bidireccional y más. Las aplicaciones de red pueden utilizar la información proporcionada por RTCP para mejorar la calidad del servicio, como limitar el tráfico o cambiar a un códec con una relación de compresión menor.