#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 в порядке.