Cómo desarrollar una aplicación de vídeo en vivo (vídeo tutorial de desarrollo de aplicaciones)
SDK de recopilación de videos en tiempo real (PC/iOS/Android) -CDN en tiempo real
(Distribución acelerada de transmisiones en vivo)-Video en vivo reproductor SDK (PC /IOS/Android)
2. El 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) → decodificación de datos →pantalla de reproducción.
1. Recopilación de datos:
La cámara y la pastilla recopilan datos de video y audio, y en este momento se obtienen los datos originales.
Tecnologías o protocolos involucrados:
Cámara: CCD, CMOS
Pickup: dispositivo de conversión acústico a eléctrico (micrófono) y circuito de amplificación de audio.
2. Codificación de datos:
Utilice hardware o software relevante para codificar (digitalizar) y procesar (como mezcla de audio y video, empaquetado, etc.) los datos de audio y video originales. para obtener datos de audio y vídeo utilizables.
Tecnologías o protocolos involucrados:
Modo 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. , empaquetado con MP3, OGG, AAC, etc.
3. Transmisión de datos:
Transmite datos de audio y vídeo codificados. Los primeros audios y videos se transmitían a través de cables como los coaxiales. Después del desarrollo de la red IP, la red IP se utiliza para una transmisión optimizada.
Tecnologías o protocolos involucrados:
Protocolos de transmisión: RTP y RTCP, RTSP, RTMP, HTTP, HLS (HTTPLiveStreaming), etc.
Señalización de control: SIP, SDP, SNMP, etc.
4. Decodificar datos:
Utilice hardware o software relevante para decodificar los datos de audio y video codificados recibidos para obtener imágenes/sonidos que se puedan mostrar directamente.
Tecnologías o protocolos relacionados:
Generalmente, los codificadores correspondientes tendrán decodificadores correspondientes y también existen algunos complementos de decodificación de terceros.
5. Reproducción y visualización:
En el display (TV, pantalla de monitor, etc.). ) o altavoces (auriculares, parlantes, etc.), muestran la imagen o el sonido correspondiente.
Tecnologías o protocolos que involucran:
Pantallas, parlantes, gafas 3D, etc.
3. Protocolos comunes relacionados con vídeo en vivo:
RTMP 1 (Protocolo de mensajería en tiempo real)
RTMP es un protocolo abierto desarrollado por Adobe Systems for Audio, Transferencia de vídeo y datos entre Flash Player y el servidor. Tiene tres variedades:
1), el protocolo de texto plano funciona en TCP, usando el puerto 1935
2) RTMPT está encapsulado en solicitudes HTTP y puede atravesar firewalls
;3) RTMPS es similar a RTMPT, pero usa una conexión HTTPS;
Flash usa el protocolo RTMP para transmitir objetos, video y audio. El protocolo se basa en el protocolo TCP o el protocolo HTTP de sondeo. El protocolo RTMP es como un contenedor para paquetes de datos. Los paquetes de datos pueden ser datos en formato AMF o datos de audio y video FLV. Una sola conexión puede transmitir múltiples flujos de red a través de diferentes canales, y los paquetes de datos en estos canales se transmiten en paquetes de tamaño fijo.
2.RTSP (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 transmisión de datos, proporcionar una forma de seleccionar canales de transmisión como UDP, UDP de multidifusión, TCP, etc., y proporcionar un método para seleccionar un mecanismo de transmisión 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 tiene una mayor tolerancia a 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 carga real para evitar retrasos causados por demasiada carga concentrada en el mismo servidor.
3. Protocolo de transmisión en tiempo real.
RTP es un protocolo de capa de transporte para flujos de datos multimedia. Describe en detalle el formato de paquete estándar para transmitir audio y vídeo en Internet. El protocolo RTP se usa comúnmente en sistemas de transmisión de medios (usando el protocolo RTCP), videoconferencias y sistemas push-to-talk (usando 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 suele utilizarse junto con RTCP. RTP en sí no proporciona mecanismos de entrega a tiempo ni otras garantías de calidad de servicio (QoS), sino que depende de servicios subyacentes para implementar este proceso.
RTP no garantiza la transmisión ni evita la transmisión desordenada, ni determina la confiabilidad de la red subyacente. Simplemente envía, independientemente de si la transmisión se pierde o si el receptor recibe el paquete. RTP implementa la transmisión ordenada. El número de secuencia en RTP permite al receptor volver a ensamblar la secuencia de paquetes del remitente, y el número de secuencia también se puede utilizar para determinar la ubicación adecuada del paquete. Por ejemplo, la decodificación de vídeo no requiere decodificación secuencial.
4.RTCP (Protocolo de control de transporte en tiempo real)
RTCP es un protocolo de soporte para RTP y proporciona control fuera del canal para transmisiones de medios RTP. RTCP y RTP trabajan juntos para empaquetar y enviar datos multimedia y transmitir periódicamente datos de control entre los participantes de 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, el número de pérdidas de paquetes, el retraso de la red unidireccional y bidireccional, etc. 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 de menor compresión.