Создание фонового звука для видео с помощью ffmpeg

#ffmpeg

#ffmpeg

Вопрос:

У меня есть видеофайл без звука и стереофонический аудиофайл. Видео в несколько раз длиннее, чем аудио. Я хотел бы создать фоновый звук, который начинается с 2-секундной тишины, затем обрезать тишину звука на обоих концах и дублировать обрезанный звук несколько раз до конца видео.

введите описание изображения здесь

Я нашел, как обрезать звук:

 ffmpeg -y -i audio.wav -af silenceremove=start_periods=1:start_threshold=-75dB,areverse,silenceremove=start_periods=1:start_threshold=-75dB,areverse trimmed_audio.wav
 

И как создать тишину:

 ffmpeg -y -f lavfi -i anullsrc=channel_layout=stereo:sample_rate=48000:duration=2 silence.wav
 

Как я могу дублировать аудио и объединять его с видео?

Ответ №1:

Базовый синтаксис

ffmpeg -an -i video -stream_loop -1 -i trimmed_audio.wav -af adelay=2000:all=1 -shortest -fflags shortest -max_interleave_delta 100M out.mp4

Используйте ffmpeg 4.1 или новее.

Комментарии:

1. Спасибо!. Можете ли вы объяснить, как это работает? Могу ли я использовать silenceremove=start_periods=1:start_threshold=-75dB,areverse,silenceremove=start_periods=1:start_threshold=-75dB,areverse вместо trimmed_audio.wav , чтобы сделать все в одной строке?

2. Нет. Затем тишину нужно будет удалять для каждой итерации. Это чище.

3. Если я не хочу перекодировать видео, можно ли добавить c:v copy в конец? ffmpeg -an -i video -stream_loop -1 -i trimmed_audio.wav -af adelay=2000:all=1 -shortest -fflags shortest -max_interleave_delta 100M -c:v copy out.mp4

4. Конечно, копирование -c:v в порядке.