Estoy intentando combinar algunos archivos de audio m4a, parece que todo funciona bien.
Estoy usando ese comandoffmpeg -f concat -safe 0 -i files.txt -y -af anlmdn output.m4a
He notado que estoy obteniendo espacio entre el audio.
Quizás alguien sepa cómo eliminar estos espacios y concatenar cada entrada después de cada
Respuesta1
Cuando ffmpeg carga una transmisión AAC, internamente agrega 2 cuadros adicionales de silencio para el relleno, a menudo llamados "muestras de preparación". El comentario anterior que dice agregar un punto de entrada de 0.2322 es correcto para una frecuencia de muestreo específica, aunque hay más por hacer si desea que sea perfectamente fluido.
Para concatenar sin problemas y sin espacios, puede hacer lo siguiente:
- Calcule la longitud del cuadro AAC en función de la frecuencia de muestreo, por ejemplo, 1024/44100 = 0,02321995 para 44,1 KHz.
- Codifique 2 fotogramas AAC adicionales al principio y al final de cada segmento.
- Tenga en cuenta los 2 marcos de relleno silenciosos que ffmpeg siempre agrega internamente.
- Asigne directivas de punto de entrada y punto de salida en el archivo de texto concat para que solo se utilice el contenido "bueno" al crear el archivo de salida.
Los 2 fotogramas iniciales adicionales son necesarios porque cada fotograma AAC depende de hasta 2 fotogramas anteriores. Entonces, para codificar el primer cuadro correctamente, necesita ese contexto. Los 2 fotogramas adicionales al final son necesarios porque ffmpeg reduce el audio al final para evitar un estallido repentino. Al agregar 2 fotogramas adicionales, cambiamos la inclinación para que no afecte nuestro contenido real. Estos fotogramas adicionales luego se eliminan con inpoint y outpoint para evitar contenido repetido.
Al utilizar este método, es importante que todos los segmentos tengan una longitud que sea un múltiplo exacto de la duración de un cuadro AAC. Si no es así, verá artefactos impredecibles en los límites de los segmentos.
Recientemente lancé un repositorio que demuestra esto con más detalle con código real:https://github.com/wistia/seamless-aac-split-and-stitch-demo.