Red de conocimiento informático - Conocimiento informático - ¿Cómo solucionar varios problemas de audio comunes en transmisiones en vivo?

¿Cómo solucionar varios problemas de audio comunes en transmisiones en vivo?

Centrémonos en los problemas de ruido, ruido y eco que ocurren durante la transmisión en vivo.

En comparación con el vídeo, el audio es mucho más sensible. Se pueden tolerar el ruido y el mosaico en la imagen del vídeo. Sin embargo, una vez que hay algún defecto en el sonido, el oído humano lo sentirá fácilmente y lo detectará. inaguantable.

Problemas

Los problemas de audio más comunes se describen a continuación:

- Electricidad, crujidos, molestias o pitidos

- El sonido es intermitente y poco claro

- Eco, puedes escuchar tu propia voz

Problema

Identificación del problema

1. Como se mencionó anteriormente, El audio es un asunto particularmente delicado e involucra muchas configuraciones de parámetros. Una vez que las configuraciones no coinciden bien, el sonido sonará muy extraño (por ejemplo: audio con una frecuencia de muestreo de 32000 Hz, configure el reproductor a 8000 Hz o 44100 Hz). efectos de reproducción de audio demasiado lenta o reproducción de audio demasiado rápida).

Para conocer los parámetros de audio comunes y los principios básicos, puede consultar el artículo: "Desarrollo de audio de Android (1): conocimientos básicos"

Solo debemos tener en cuenta si se trata de captura o reproducción, las API del sistema y las bibliotecas de terceros deben configurar los parámetros correctos, como la frecuencia de muestreo, el ancho de bits, el número de canales, etc.

2 Razones a nivel de código

Los problemas comunes a nivel de código son los siguientes:

- El tamaño del buffer de audio no coincide, un audio de 1024 bytes se coloca en una matriz de 2048 bytes, lo que genera un número aleatorio al final

- Remuestreo de audio Los problemas con el algoritmo de muestreo provocan problemas con los datos muestreados.

- Al extraer una matriz del ByteBuffer de Android, no puede usar el método .array() directamente, pero necesita usar el Método .get()

- En el sistema iOS, otras aplicaciones cambian la configuración de la frecuencia de muestreo de AudioSession a través de la API del sistema

Respuesta

3.

El vídeo se compone de imágenes continuas fotograma a fotograma. Durante la reproducción, si no se puede presentar a tiempo, se producirá un efecto de retraso; si se pierden varios fotogramas, se producirá un efecto de avance rápido.

p>

Se producirá otro efecto. Por otro lado, el audio se transmite, aunque también se divide en fotogramas de audio individuales, pero si no puedes reproducirlo a tiempo o pierdes más fotogramas de audio seguidos, obviamente lo harás. escucha un sonido intermitente. Esto es cuando la red es inestable y débil. Esto es especialmente obvio en entornos de red con altas tasas de pérdida de paquetes.

4. donde el audio se recopila y se reproduce al mismo tiempo, como: interacción del micrófono, reproducción de mezcla, etc., el audio recopilado se reproduce a través del altavoz y el audio recopilado al mismo tiempo producirá un eco o un aullido. p>

Estos escenarios generalmente están controlados por la API de cancelación de eco del sistema o se utilizan bibliotecas de cancelación de eco de terceros (como speexdsp, webrtc, etc.)

Nota: La función de cancelación de eco de muchos modelos de Android no es buena.

5. Mezclar fuera de los límites

Los datos de audio PCM generalmente se almacenan en matrices cortas cuando hacemos audio multicanal. Mezclando, si no prestamos atención al tamaño del tipo corto fuera de límites, a menudo conducirá a problemas de sonido. La siguiente es una cita de mezcla de código de audio diseñado para el procesamiento simple de mezclas fuera de límites.