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. generalmente usa 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 y 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 fácil de usar. Sin embargo, el sistema Android es más 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 al 50% 2. El preprocesamiento en este enlace se ocupa principalmente del embellecimiento y la marca de agua. , desenfoque y otros efectos, en particular, la función de embellecimiento es casi una característica estándar de la transmisión en vivo. Los presentadores de transmisiones en vivo sin embellecimiento no pueden permitírselo. Interesante: hemos visto demasiados casos en los que las personas fueron abandonadas porque no tenían la función de embellecimiento. Otro país ha declarado claramente que todas las transmisiones en vivo deben tener una marca de agua, reproducirse y conservarse durante más de 15 días. Por lo tanto, al elegir un SDK de transmisión en vivo, no existe la función de embellecimiento ni marca de agua. De hecho, 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, existe una gran diferencia entre el color de la piel de una persona y el tono del entorno. A través de la comparación de colores, se puede encontrar el contorno básico de la cara, 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 ajustar. la transparencia, etc. para lograr el efecto blanqueador, además del efecto blanqueador, el embellecimiento también requiere la función de dermoabrasión. En realidad, la microdermoabrasión se logra utilizando filtros de desenfoque. Hay muchos tipos de filtros, como el filtro gaussiano, el filtro bilateral y el guiado. filtro Cada empresa tiene sus propias preferencias en cuanto a qué tipo de filtro de desenfoque elegir. En términos de procesamiento de belleza, el más famoso es GPUImage que proporciona una gran cantidad de efectos y puede admitir tanto IOS como Android. Para lograr los efectos más racionales, GPUImage tiene más de 120 efectos de filtro comunes incorporados. Para agregar un filtro, solo necesita llamar a unas pocas líneas de código, por ejemplo, puede intentar usar el filtro de filtrado bilateral de GPUImageBilateralFiter. para procesar el efecto básico de la microdermoabrasión. Si desea lograr efectos más ideales, aún debe lograrlo a través de un algoritmo personalizado. Cada empresa también tiene su propio conjunto de algoritmos 3. Codificación Para facilitar el empuje, la extracción y el almacenamiento. Los videos móviles, la tecnología de codificación y compresión de video se usan generalmente para reducir el tamaño del video. 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 generalizará. en términos de audio, el formato de codificación AAC 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. El video debe decodificarse durante la reproducción. En términos sencillos, el codificador codifica múltiples imágenes para generar segmentos de GOP (GroupofPictures). Durante la reproducción, el decodificador lee segmentos de GOP, los decodifica, lee las imágenes y las representa para su visualización. La codificación es encontrar el mejor punto de equilibrio entre parámetros como resolución, velocidad de bits, velocidad de fotogramas, etc., para lograr el tamaño más pequeño y el mejor efecto de imagen. Cada empresa también tiene su propio conjunto de parámetros básicos para estos parámetros. En 2012, Ericsson lanzó el primer códec H.265. Seis meses después, la Unión Internacional de Telecomunicaciones (UIT) aprobó oficialmente el estándar HEVC/H.265, que se denomina codificación de vídeo de alta eficiencia en comparación con el estándar H.264 anterior. Se ha mejorado mucho. Solo 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 en China. Por ejemplo, Alibaba Cloud y Kingsoft Cloud están promocionando su propio H. Tecnología de códec .265 Con el rápido desarrollo de la transmisión en vivo y la dependencia del ancho de banda, el códec H.265.
La tecnología tiende a reemplazar completamente a H.264. Por supuesto, llevará algún tiempo promover completamente la aplicación. Además, la codificación por hardware se ha convertido en la solución preferida para las transmisiones móviles en vivo. muy obvio. La codificación de hardware en la plataforma IOS es relativamente buena y se puede usar directamente. Sin embargo, en la plataforma Android, el codificador MediaCodec de Android tiene un rendimiento muy diferente para diferentes plataformas de chip. Debe ser totalmente compatible con todas las plataformas. Si desea utilizarlo para transmisión push, los datos de audio y video también deben encapsularse mediante un protocolo de transmisión y convertirse en datos de transmisión. Los protocolos de transmisión de transmisión más utilizados incluyen RTSP, RTMP, HLS, etc. El retraso de la transmisión RTMP suele ser. 1-3 segundos, que es un requisito en tiempo real para transmisiones móviles en vivo. En escenarios de muy alta gama, RTMP también se ha convertido en 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 se distribuye a través de CDN. En escenarios de transmisión en vivo, la inestabilidad de la red es muy común. En este momento, se necesita Qos para garantizar la experiencia del usuario al ver transmisiones en vivo cuando la red es inestable. El ancla y el reproductor lo aumentan para igualar la velocidad del código. Además, en respuesta a los cambios en tiempo real en las condiciones de la red, la velocidad del código dinámico y la velocidad de fotogramas también son. Por supuesto, la estrategia más utilizada es básicamente. No es realista hacerlo todo usted mismo en términos de transmisión de red. La mejor opción es encontrar un proveedor de servicios CDN que brinde servicios de transmisión para brindar soluciones. Puede consultar el proveedor de servicios de video en la nube presentado al principio del artículo. Se entiende que Alibaba Cloud es el único fabricante en China que puede desarrollar su propio servidor de caché CDN y su rendimiento aún está muy garantizado. Por lo general, la mayoría de las plataformas de transmisión en vivo accederán a múltiples proveedores de servicios de video en la nube al mismo tiempo, por lo que pueden atraer. las líneas se pueden respaldar mutuamente y se puede garantizar el flujo de inserción. Una mayor optimización del grupo de video también puede mejorar la fluidez y estabilidad de la transmisión en vivo.