Red de conocimiento informático - Espacio del host - ¿Qué trabajo debe realizar un terminal móvil de transmisión en vivo?

¿Qué trabajo debe realizar un terminal móvil de transmisión en vivo?

El extremo de transmisión es el extremo del ancla, que 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 empaquetado, se envía a CDN para su distribución. El divertido SDK de transmisión en vivo puede cumplir con todas las siguientes funciones y escenarios de aplicación, ayudando a los desarrolladores a resolver diversos problemas de transmisión en vivo.

Recopilar

El SDK en vivo del teléfono móvil recopila directamente datos de video y audio a través de la cámara y el micrófono del teléfono móvil. Entre ellos, los datos de muestreo de video generalmente adoptan el formato RGB o YUV, y los datos de muestreo de audio generalmente adoptan el formato PCM. La cantidad de datos de audio y video originales recopilados es muy grande y 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 grabación de vídeo con 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 grabación de vídeo relativamente completa y es relativamente fácil de usar. Pero el sistema Android es más problemático. Hay todo tipo de modelos extraños a los que es difícil adaptarse. Hicimos una encuesta en la etapa inicial y descubrimos que la tasa de adaptación de Android era inferior al 50%.

? 2. Preprocesamiento

Este enlace trata principalmente de efectos como embellecimiento, marcas de agua y desenfoque. En particular, la función de embellecimiento es casi una característica estándar para las transmisiones en vivo, y los presentadores de transmisiones en vivo sin embellecimiento no tienen ningún interés. Hemos visto demasiados casos en los que se abandonaron productos porque no tenían características de belleza. Además, el estado ha dejado en claro que todas las transmisiones en vivo deben tener una marca de agua y reproducirse durante más de 15 días. Por lo tanto, al elegir un SDK en vivo, si no tiene funciones de embellecimiento y marca de agua, básicamente puedes rendirte.

El embellecimiento consiste en realidad en identificar la parte de la piel en la imagen mediante un algoritmo y luego ajustar el valor del color del área de la piel. A menudo, el color de la piel difiere mucho del entorno. Al comparar colores, puede encontrar el contorno básico de la piel, examinar más a fondo el tono de la piel y determinar la variedad de formas de la cara. Si encuentra áreas de piel, puede ajustar el valor del color, agregar una capa blanca o ajustar la transparencia para lograr un efecto de blanqueamiento. Además del efecto blanqueador, la belleza también requiere una función de exfoliación, que en realidad se logra mediante un filtro de desenfoque. Hay muchos tipos de filtros, filtros gaussianos, filtros bilaterales, filtros direccionales, y cada uno tiene sus propias preferencias sobre qué tipo de filtro de desenfoque elegir.

En términos de procesamiento de belleza, GPUImage más famoso proporciona una gran cantidad de efectos y puede admitir IOS y Android, así como sus propios algoritmos para lograr sus efectos más racionales. GPUImage tiene incorporados 120 efectos de filtro de uso común. Se puede agregar un filtro simplemente llamando algunas líneas de código. Por ejemplo, puede intentar utilizar el filtro bilateral de GPUImageBilateralFiter para manejar el efecto de pelado básico. Si desea lograr resultados más ideales, aún necesita utilizar un algoritmo personalizado. Cada empresa tiene su propio conjunto de algoritmos.

3. Codificación

Para facilitar la inserción, extracción y almacenamiento de videos móviles, generalmente se utiliza tecnología de codificación y compresión de video para reducir el tamaño del video. La codificación de video más utilizada actualmente es H.264, pero la tecnología de codificación H.265 con mayor rendimiento se está desarrollando rápidamente y pronto podría convertirse en algo común. En cuanto al audio, para la compresión se suele utilizar el formato de codificación AAC, mientras que otros como MP3 y WMA también son opciones. La codificación y compresión de vídeo mejoran enormemente la eficiencia del almacenamiento y la transmisión de vídeo. Por supuesto, el vídeo comprimido debe descodificarse durante la reproducción. En términos generales, un codificador codifica varias imágenes para generar un conjunto de imágenes. Durante la reproducción, el decodificador lee un conjunto de GOP, los decodifica, lee la imagen y la renderiza. El núcleo de la codificación es encontrar el mejor punto de equilibrio entre parámetros como la resolución, la velocidad de bits y la velocidad de fotogramas para lograr el mejor efecto de la imagen más pequeña. Cada uno de estos parámetros también tiene su propio conjunto de parámetros básicos.

En agosto de 2012, Ericsson lanzó el primer códec H.265. Medio año después, la Unión Internacional de Telecomunicaciones (UIT) aprobó oficialmente el estándar HEVC/H.265, denominado Codificación de vídeo de alta eficiencia. En comparación con el estándar H.264 anterior, se ha mejorado mucho. Sólo requiere la mitad del ancho de banda original para reproducir vídeos de la misma calidad. A nivel nacional, Alibaba Cloud y Kingsoft Cloud están promocionando su propia tecnología de códec H.265. Con el rápido desarrollo de la transmisión en vivo y su 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 impulsar completamente las aplicaciones.

Además, la codificación por hardware se ha convertido en la primera opción para las transmisiones móviles en vivo, y la tendencia a la codificación suave de videos por encima de 720p es muy obvia.

La codificación de hardware de la plataforma IOS tiene buena compatibilidad y se puede utilizar directamente. Sin embargo, en la plataforma Android, el rendimiento del codificador MediaCodec de Android sigue siendo muy diferente para las diferentes plataformas de chip, por lo que es necesario lograr una compatibilidad total con la plataforma.

? 4. Push streaming

Para poder utilizarlos para streaming, los datos de audio y vídeo deben encapsularse y convertirse en datos de streaming a través de un protocolo de transporte. Los protocolos de transmisión de medios de uso común incluyen RTSP, RTMP, HLS, etc. La latencia de las transferencias RTMP suele ser de 1 a 3 segundos. RTMP también se ha convertido en el protocolo de transmisión de medios más utilizado en transmisiones móviles en vivo, que tiene requisitos de tiempo real muy altos. Finalmente, los datos de la 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. En este momento, Qos es necesario para garantizar la experiencia de los usuarios al ver transmisiones en vivo cuando la red es inestable. Los buffers generalmente se configuran en el extremo del ancla y en el extremo de la reproducción para igualar la velocidad del código. Además, la velocidad de bits dinámica y la velocidad de fotogramas también son las estrategias más utilizadas en condiciones de red cambiantes en tiempo real.

Por supuesto, en términos de transmisión de red, es básicamente poco realista hacerlo usted mismo. Encontrar un proveedor de servicios CDN que brinde soluciones es la mejor opción. Consulte el proveedor de servicios de video en la nube presentado al principio del artículo. Se entiende que Alibaba Cloud es el único fabricante nacional que puede desarrollar de forma independiente servidores 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 se conectarán a múltiples proveedores de servicios de video en la nube al mismo tiempo, de modo que las líneas de transmisión de medios se puedan usar para respaldarse entre sí. La optimización del grupo de vídeo después de la transmisión también puede mejorar la fluidez y estabilidad de la transmisión en vivo.