Filtro de fusión FFmpeg: continúa con la transmisión de audio más larga

Filtro de fusión FFmpeg: continúa con la transmisión de audio más larga

Tengo un vídeo que ya tiene 1 secuencia de audio. Tengo otro m4aarchivo que quiero fusionar con la secuencia de audio ya existente en el vídeo.

El m4aarchivo es unos 10 segundos más corto que la otra secuencia de audio y, según elFFmpegdocumentos:

Si las entradas no tienen la misma duración, la salida se detendrá con la más corta.

Pero quiero que continúe con la transmisión de audio más larga (pero aún así tener ambas transmisiones fusionadas en una).

Este es el comando actual que estoy usando, que simplemente detiene el audio una vez que finaliza la transmisión de audio más corta:

ffmpeg -i input.mp4 -i shorteraudio.m4a -filter_complex "[0:v]scale=-2:720,format=yuv420p[v];[0:a]amerge=inputs=2[a]" -map [v] -map [a] output.mp4

¿Es posible hacer lo que quiero con un solo comando FFmpeg?

Respuesta1

Si se sabe que la segunda entrada tiene un flujo de audio más corto, puede aumentar su longitud para que la primera sea más corta.

ffmpeg -i input.mp4 -i shorteraudio.m4a -filter_complex "[0:v]scale=-2:720,format=yuv420p[v];[1:a]apad[a1];[0:a][a1]amerge=inputs=2[a]" -map [v] -map [a] output.mp4

información relacionada