FFmpeg - Sincronizar archivo de audio externo

Estoy creando algunas plantillas de codificación para la transmisión de múltiples tasas de bits y quiero crear una alternativa que sea solo de audio. Entonces, cuando el ancho de banda de la conexión de un usuario cae por debajo de x, deja de reproducir video y cambia a solo audio.

El problema es la alineación de dicho flujo de audio. He alineado la transmisión de video con

-x264opts keyint=48:min-keyint=48:no-scenecut 

Esto crea intervalos iguales en fotogramas clave, lo que permite GOP consistentes para la transmisión. Pero esta opción no está disponible solo para audio.

Extraje el audio del archivo original, así:

ffmpeg -i Sample.avi -vn -ar 44100 -ac 2 -ab 128k -f mp3 audio_only.mp3

Eso crea un archivo .MP3 separado, igual a las secuencias de audio del archivo original (.MP4). Sin embargo, no tengo forma de garantizar que esto esté en línea con las secuencias de audio de los .MP4 codificados (el conjunto de tasa de bits múltiple).

Entonces, ¿hay alguna manera de asegurarse de que estos archivos estén alineados? ¿O debo extraer el audio de uno de los archivos codificados, en lugar del archivo mezzanine?

Respuestas (1)

Una forma de lograr esto podría ser crear un .MP4 con su audio y una imagen completamente en negro, que debería codificarse en algo no mucho más grande que el archivo de audio pero aún así tener la misma estructura interna que los archivos de video completos.

Podría usar eso, y probablemente funcionará. Sin embargo, el archivo no sería técnicamente audio solo entonces. Aunque no veo otra forma. ¡Gracias por su sugerencia!
Extraer el audio de uno de los archivos codificados debería obtener solo audio. Recuerde agregar -copytsal comando de extracción y extraer a .mp4.
@WouterPol Otra posible ventaja de esto es que podría usar una imagen estática como texto sobre negro que dice "Bajo ancho de banda - Solo audio". Esto tomaría un poco más de espacio, pero no mucho.
Sí, esa sería una gran técnica alternativa, ¡gracias!