Добавление аудио к видео в определенное время: изучено несколько методов

Добавление звука к видео в определенное время может значительно улучшить общее впечатление от просмотра. Независимо от того, создаете ли вы фильм, учебное пособие или рекламный видеоролик, синхронизация звука с видео имеет решающее значение. В этой статье мы рассмотрим различные методы с использованием популярного инструмента командной строки FFmpeg для добавления звука к видео в определенное время. Мы предоставим примеры кода для каждого метода, чтобы вы могли выбрать тот, который лучше всего соответствует вашим требованиям.

Метод 1: объединение и обрезка
Один из способов добавить звук к видео в определенное время — объединить видео и аудиофайлы. Мы можем добиться этого, выполнив три шага: разбив исходное видео на две части, объединив первую часть со звуком, а затем объединив результат со второй частью исходного видео.

Пример кода:

ffmpeg -i video.mp4 -ss 00:00:00 -t 00:05:00 -c copy video_part1.mp4
ffmpeg -i video.mp4 -ss 00:05:00 -c copy video_part2.mp4
ffmpeg -i audio.mp3 -ss 00:01:30 -t 00:03:30 -c copy audio_trimmed.mp3
ffmpeg -i video_part1.mp4 -i audio_trimmed.mp3 -c copy -map 0:v:0 -map 1:a:0 output.mp4
ffmpeg -i output.mp4 -c copy -map 0 -map 1 -shortest final_output.mp4

Метод 2: наложение звука
Другой подход — наложение звука на видео в нужное время. Этот метод предполагает создание беззвучной звуковой дорожки той же продолжительности, что и видео, ее объединение с исходным звуком и последующее наложение на видео.

Пример кода:

ffmpeg -i video.mp4 -i audio.mp3 -filter_complex \
"[0:a]adelay=5000|5000[video_audio]; \
 [1:a]adelay=5000|5000; \
 [0:v][video_audio]concat=n=3:v=1:a=1[out]" \
-map "[out]" -c:v copy -c:a aac -shortest output.mp4

Метод 3: замена звука
В некоторых случаях может потребоваться полностью заменить исходный звук в видео. Этот метод предполагает извлечение звука из видео, объединение его с нужной звуковой дорожкой и последующую замену исходного звука новым.

Пример кода:

ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -map 0:v:0 -map 1:a:0 -shortest output.mp4