Desarrolle y cree una plataforma de transmisión en vivo a partir de un resumen de tutorial virtual

Escribe antes de comenzar

También he compartido muchos artículos técnicos dispersos anteriormente, incluidas tecnologías relacionadas con audio y video, procesamiento de imágenes y servicios de transmisión . Sin embargo, todos están escritos para implementar funciones específicas en lugar de sistemas. Por lo tanto, muchos lectores están confundidos y desconcertados. Los lectores deben tener una cierta comprensión de la arquitectura y el conocimiento relacionados con la transmisión de medios para comenzar.

Para los desarrolladores, todo esto es bueno para decir. Pero para los lectores no técnicos, se puede decir que ser desalentar directamente, por lo que esta serie de artículos para los desarrolladores para entrar en la tecnología para y no técnica para actualizar dos tipos de tutoriales, respectivamente, para "no técnica de la" Serie de tutoriales no Aparece la escritura de código y se esfuerza por ser fácil de entender; para que los desarrolladores obtengan una serie de tutoriales "técnicos", habrá una gran cantidad de tutoriales de desarrollo y optimización de código.

Esta serie de artículos utilizará escenarios de aplicación específicos como tutoriales prácticos, explicará sistemáticamente cómo está diseñada la arquitectura de toda la plataforma de transmisión en vivo y cómo desarrollar estos subsistemas o funciones de módulo para construir una plataforma de transmisión en vivo completa.

Suplemento: este tutorial también es aplicable a videoconferencias , videovigilancia y otros escenarios de aplicación. El principio de Lianmai en la videoconferencia y la transmisión en vivo es el mismo: la diferencia entre la videovigilancia y la plataforma de transmisión en vivo es que no hay un final de inserción activo y hay más final de extracción o transferencia.

Estructura de plataforma de transmisión en vivo

Para evitar el problema de las personas ciegas que tocan el elefante. Entenderemos la estructura de toda la plataforma de transmisión en vivo de cara a punto, y luego descompondremos esta cara en subsistemas individuales o funciones de módulo específicas, para que podamos entender claramente cuál es la función de cada módulo del sistema bajo la plataforma de transmisión en vivo. Cómo funciona

La estructura de plataforma de transmisión en vivo más simple: de
La arquitectura de plataforma de transmisión en vivo más simplehecho, siempre que hayamos construido un servicio de transmisión, hemos completado la plataforma de transmisión en vivo más simple. El resto es esperar la transmisión principal del live UP, y luego el usuario puede verlo, ¿es muy simple?

Por supuesto, esto no es suficiente. El usuario no sabe cómo obtener y reproducir su dirección de transmisión en vivo. El anfitrión de Live UP no sabe dónde empujar la transmisión. La plataforma de transmisión en vivo es para ayudar al usuario a mostrar la sala del anfitrión de UP en vivo, lo cual es conveniente para la detección y visualización. Es conveniente que los usuarios se comuniquen con el host principal que está transmitiendo en vivo. En cuanto a la transmisión automática de la transmisión UP en vivo, aún necesita conocer la dirección de transmisión en vivo y usar la herramienta de inserción como OBS para enviar la transmisión antes de poder transmitir en vivo.

Distribución de CDN :
¿Por qué se utiliza la distribución de CDN? Esto se debe a que hay más usuarios que miran transmisiones en vivo utilizando la plataforma de transmisión en vivo. Surge un problema importante, es decir, un ancho de banda insuficiente.

Por ejemplo: suponga que solo tiene un maestro UP en vivo que está impulsando una transmisión HD 1080P en vivo, la velocidad de bits es de 4Mbps / s (512KB por segundo), ahora hay 1,000 usuarios mirando al mismo tiempo, cada usuario también está transmitiendo 4Mbps / s ( 512 KB por segundo), entonces mil personas también necesitan un ancho de banda de 4000 Mbps / s (tráfico de 500 MB por segundo en tiempo real), lo que significa que menos de 3.000 usuarios necesitan un ancho de banda de 10 Gigabits.

Que hacer Es concebible que no sea realista confiar solo en la resistencia dura del ancho de banda. Y los costos de ancho de banda doméstico no son baratos. Entonces, en este momento, se necesita CDN para ayudar a aliviar la presión del ancho de banda del servidor del centro de transmisión de medios. La distribución de CDN generalmente cobra según el tráfico, y no hay almuerzo gratis en el mundo.
En este momento, la estructura de la plataforma de transmisión en vivo se vuelve así:
Inserte la descripción de la imagen aquí

Empuje final

El software comúnmente utilizado en el extremo de inserción es la herramienta de inserción OBS . Esta herramienta no entrará en detalles, y es ampliamente utilizada.
Por supuesto, para los desarrolladores, definitivamente se necesitan FFmpeg y opencv . FFmpeg es hacer codificación de audio y video y transmisión en tiempo real. Por supuesto, Opencv se usa para lograr belleza .

Servicio de streaming

El servicio de transmisión de medios es una estación de retransmisión de video en tiempo real.
En general, los servicios de transmisión de medios son nginx , srs , red5, etc. Los tutoriales de seguimiento de esta serie incluirán principalmente nginx y srs .

Pull stream player

PC end: VLC
web end: videojs, flv.js, hls.js, ckplayer, etc.
Mobile end: ijkplayer
WeChat applet: es mejor usar Penguin Cloud para jugar, de lo contrario habrá problemas de compatibilidad, prueba profesional solo penguin propia web El reproductor puede ser compatible con el applet QQ WeChat y la cuenta pública al mismo tiempo.

El seguimiento de la serie de tutoriales utilizará principalmente VLC para probar la reproducción del flujo de extracción. Aunque VLC tiene un gran retraso, la compatibilidad es la mejor. La prueba del lado web utiliza principalmente videojs y flv.js y el pingüino jugador

Distribución CDN

Muchos proveedores de servicios de CDN admiten la distribución de medios de transmisión como rtmp, flv, hls, etc. Debido a que involucran a fabricantes específicos y no anuncian, no se enumeran aquí.

Siguiente capitulo

Desarrollar y construir una plataforma de transmisión en vivo desde el servicio de medios scratch-Streaming construir 1-nginx transmisión del servicio de medios de transmisión construir
y construir una plataforma de transmisión en vivo desde el servicio de medios scratch-streaming construir 2-srs

serie javacv

Implementación de finalización de flujo de inserción: https://blog.csdn.net/eguid_1/article/details/52678775

Implementación de fin de secuencia de extracción: https://blog.csdn.net/eguid_1/article/details/52680802

Construyendo un servicio de transmisión previamente escrito

Edificio de servicios nginx-rtmp: https://blog.csdn.net/eguid_1/article/details/51749830

Gracias por apoyar el artículo original eguid. Bienvenido a reimprimir el artículo, pero también indique la fuente, no es fácil de crear, ¡muchas gracias!

Supongo que te gusta

Origin www.cnblogs.com/eguid/p/12741787.html
Recomendado
Clasificación