Я пытаюсь запустить команду ffmpeg, чтобы объединить аудиофайл со звуком. Используемая мной команда понижает громкость аудиофайла, так как это музыка, а в видео есть звук.

У меня проблема с обрезкой аудиофайла, когда заканчивается звук видео, вместо продолжения, пока видео не заканчивается.

/usr/local/bin/ffmpeg \
-i thepath/input.mp4 \
-i musicpath/music.mp3 \
-filter_complex \
"[1:a]volume=-21dB,apad[A]; \
[0:a][A]amerge[out]" \
-c:v libx264 -c:a aac -map 0:v -map "[out]" \
-preset ultrafast -threads 0 -profile:v baseline \
-ac 2 -pix_fmt yuv420p -t 30 -y thepath/output.mp4 2>&1

Я запутался, почему это не работает, как задумано?

1 ответ1

1

amerge заканчивается самым коротким входным потоком, который здесь является аудио видео, и который не распространяется до конца видео потока.

Добавьте apad к аудио-видео и добавьте -shortest в качестве опции вывода.

Полная команда будет

/usr/local/bin/ffmpeg \
-i thepath/input.mp4 \
-i musicpath/music.mp3 \
-filter_complex \
"[0:a]apad[main]; \
 [1:a]volume=-21dB,apad[A]; \
[main][A]amerge[out]" \
-c:v libx264 -c:a aac -map 0:v -map "[out]" \
-preset ultrafast -threads 0 -profile:v baseline \
-ac 2 -pix_fmt yuv420p -t 30 -shortest -y thepath/output.mp4 2>&1

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .