Al desarrollar un sitio web de transmisión en vivo, quiero reproducirlo en un navegador móvil y usar rtmp para enviar la transmisión, pero el navegador móvil no puede recibir rtmp.
El extremo de la transmisión push es el extremo del ancla. Recopila principalmente datos de video a través de la cámara del teléfono móvil y datos de audio a través del micrófono. Después de una serie de preprocesamiento, codificación y encapsulación, se realiza la transmisión. enviado a CDN para su distribución, puede cumplir con todas las siguientes funciones y escenarios de aplicación para ayudar a los desarrolladores a resolver diversos problemas de transmisión en vivo. El SDK de transmisión en vivo móvil recopila datos de video y audio directamente a través de la cámara y el micrófono del teléfono móvil. los datos de muestreo de video generalmente usan el formato RGB o YUV, y los datos de muestreo de audio generalmente usan el formato PCM es muy grande para el volumen del audio y video original recopilados, por lo que debe procesarse mediante tecnología de compresión para reducir el tamaño del video a Mejorar la eficiencia de la transmisión en términos de recopilación de videos de teléfonos móviles, el sistema iOS hace un mejor trabajo en términos de compatibilidad de hardware. El sistema en sí proporciona una interfaz de recopilación de videos relativamente completa y es relativamente simple de usar. problemático Hay todo tipo de modelos extraños y es muy difícil de adaptar. Hicimos una encuesta en la etapa inicial y descubrimos que la tasa de adaptación de Android es inferior a 502. El preprocesamiento en este enlace se ocupa principalmente del embellecimiento y la marca de agua. , Desenfoque y otros efectos Especialmente la función de embellecimiento es casi una función estándar para transmisiones en vivo. Los presentadores de transmisiones en vivo sin embellecimiento no nos interesarán en absoluto. He visto demasiados casos en los que las personas fueron abandonadas porque no tenían el embellecimiento. Otro país ha declarado claramente que todas las transmisiones en vivo deben tener una marca de agua y reproducirse y conservarse durante más de 15 días. Por lo tanto, al elegir un SDK de transmisión en vivo, es básicamente un problema sin funciones de embellecimiento y marca de agua. En realidad, el algoritmo se utiliza para identificar la parte de la piel en la imagen y luego se ajusta el valor del color del área de la piel. Normalmente, hay una gran diferencia entre el color de la piel de una persona y el tono de la misma. el entorno circundante. A través de la comparación de colores, se pueden encontrar las características básicas del contorno, una inspección adicional del color de la piel también puede determinar el rango de la cara y encontrar el área de la piel. Puede ajustar el valor del color, agregar una capa blanca o. ajuste la transparencia, etc. para lograr el efecto de blanqueamiento. Además del efecto de blanqueamiento, el embellecimiento también requiere la función de microdermoabrasión. De hecho, existen muchos tipos de filtros implementados que utilizan filtros de desenfoque, como el filtro gaussiano, el filtro bilateral y. Filtro guiado. Cada empresa tiene sus propias preferencias en cuanto a qué tipo de filtro de desenfoque elegir. En términos de procesamiento de belleza, el GPUImage más famoso proporciona Tiene un rico conjunto de efectos y puede admitir tanto IOS como Android. GPUImage tiene algoritmos propios para lograr los efectos más racionales. Para agregar un filtro, solo necesita llamar unas pocas líneas de código, como Puede intentar usar el filtro de filtrado bilateral de GPUImageBilateralFiter. procese el efecto de microdermoabrasión básico. Si desea lograr un efecto más ideal, aún debe lograrlo a través de un algoritmo personalizado. Cada empresa también tiene su propio conjunto de algoritmos. 3. Codificación por conveniencia. Generalmente se utiliza tecnología de codificación y compresión de video. para enviar, extraer y almacenar videos en teléfonos móviles, la codificación de video más utilizada ahora es H.264, pero la tecnología de codificación H.265 con mayor rendimiento se está desarrollando rápidamente y pronto se convirtió en la codificación AAC; El formato se usa generalmente para la compresión, y otras opciones como MP3 y WMA también son opciones. La codificación y compresión de video mejoran en gran medida la eficiencia de almacenamiento y transmisión del video. Por supuesto, después de la compresión, el video debe decodificarse durante la reproducción. el codificador codifica múltiples imágenes para generar segmentos de GOP (grupo de imágenes). Durante la reproducción, el decodificador lee segmentos de GOP para decodificarlos y luego lee las imágenes y las representa para mostrarlas. En términos de codificación, el núcleo es encontrar el mejor equilibrio. Señale entre parámetros como resolución, velocidad de bits, velocidad de fotogramas, etc., para lograr la imagen más pequeña y el mejor efecto. Cada uno de estos parámetros también tiene su propio conjunto de parámetros centrales. En agosto de 2012, Ericsson El primer códec H.265. Se lanzó Seis meses después, la Unión Internacional de Telecomunicaciones (UIT) aprobó oficialmente el estándar HEVC / H.265, que se llama Codificación de video de alta eficiencia. En comparación con el estándar H.264 anterior, se ha mejorado enormemente y solo se ha logrado.
Requiere la mitad del ancho de banda original para reproducir videos de la misma calidad. Las redes de menos de 1,5 Mbps también pueden transmitir videos de alta definición de 1080p. Empresas nacionales como Alibaba Cloud y Kingsoft Cloud están promoviendo su propia tecnología de códec H.265. desarrollo de transmisiones en vivo, Con el desarrollo y la dependencia del ancho de banda, la tecnología de códec H.265 tiende a reemplazar completamente a H.264. Por supuesto, llevará algún tiempo promover completamente la aplicación. Además, la codificación de hardware se ha convertido en la preferida. La solución para transmisiones en vivo móviles y el procesamiento de codificación suave es superior a 720p. La disminución del video es muy obvia. En la plataforma IOS, la compatibilidad de la codificación de hardware es relativamente buena y se puede usar directamente. La diferencia entre el codificador MediaCodec de Android para diferentes plataformas de chip sigue siendo muy grande. Es necesario implementar completamente la plataforma Compatible 4. Si se va a utilizar la transmisión push para la transmisión, los datos de audio y video deben encapsularse utilizando un protocolo de transmisión y girarse. en datos de transmisión Los protocolos de transmisión de transmisión de uso común incluyen RTSP, RTMP, HLS, etc. El retraso de la transmisión RTMP suele ser de 1 a 3 segundos. Para escenarios como transmisiones móviles en vivo con requisitos de tiempo real muy altos, RTMP también se ha convertido. el protocolo de transmisión más utilizado en transmisiones móviles en vivo. Finalmente, los datos de transmisión de audio y video se envían a la red a través de un determinado algoritmo Qos y se distribuyen a través de CDN. En escenarios de transmisión en vivo, la inestabilidad de la red es muy común. es necesario para garantizar la experiencia del usuario al ver transmisiones en vivo cuando la red es inestable. Por lo general, el presentador y el reproductor configuran cachés para igualar la velocidad del código. Además, para las condiciones cambiantes de la red, la velocidad del código dinámico. y la velocidad de fotogramas también son las estrategias más utilizadas. Por supuesto, es básicamente poco realista hacer todo usted mismo en términos de transmisión de red. Puede consultar un proveedor de servicios CDN que brinde servicios de transmisión. En cuanto al proveedor de servicios de video en la nube presentado al principio del artículo, Alibaba Cloud es el único fabricante nacional que puede desarrollar su propio servidor de caché CDN y su rendimiento está muy garantizado. Por lo general, la mayoría de las plataformas de transmisión en vivo accederán a múltiples nubes de video. proveedores de servicios al mismo tiempo, de modo que se pueda realizar una copia de seguridad mutua de las líneas de extracción, y optimizar el grupo de video después de la inserción también puede mejorar la fluidez y estabilidad de la transmisión en vivo