Пакетное добавление аудиодорожек в видеофайлы с помощью FFmpeg
Часто к видеокурсам аудиодорожки с переводом идут отдельными аудиофайлами.
Если в курсе много уроков, то вручную в каджый видеофайл добавлять аудио не всегда удобно.
Здесь мы добавим все аудиодорожки во все видеофайлы сразу с помощью программы FFmpeg.
FFmpeg — это набор свободных библиотек с открытым исходным кодом, которые позволяют конвертировать аудио/видео файлы. (
wiki: FFmpeg)
Последнюю версию можно скачать с официального сайта:
https://ffmpeg.org
В данном примере разбирается случай когда надо в MP4 файл с/без английской аудиодорожкой добавить русскую аудиодоржку из MP3 файла.
Переименование файлов
Иногда в аудиодорожках с переводом есть постфиксы: "_rus", " - rus", ....
Если такой постфикс есть, то сначала его нужно удалить и сделать так, чтобы имена аудио и видео файлов совпадали.
Если файлов много то, можно воспользоваться программой
ReNamer Pro:
Добавление аудио в видеофайлы
1. В папку с видеофайлами записываем файл "ffmpeg.exe"
2. В этой же папке создаём текстовый файл "ffmpeg_start.cmd"
3. Щелчёк правой кнопкой мыши на нём -> "Изменить", добавляем в него скрипт:
- Если в видеофайле есть английская аудиодорожка:
Код:
set RESULT_FOLDER=ffmpeg_result
mkdir %RESULT_FOLDER%
set FFMPEG_CMD=ffmpeg -i @fname.mp4 -i @fname.mp3 -map 0:v -map 1:a -map 0:a -c copy ^
-metadata:s:a:0 language=rus ^
-metadata:s:a:1 language=eng ^
%RESULT_FOLDER%/@fname.mp4
forfiles /M *.mp3 /C "cmd /c %FFMPEG_CMD%"
pause
- Если в видео файле нет аудиодорожки или надо убрать оригинальную аудиодорожку:
Код:
set RESULT_FOLDER=ffmpeg_result
mkdir %RESULT_FOLDER%
set FFMPEG_CMD=ffmpeg -i @fname.mp4 -i @fname.mp3 -map 0:v -map 1:a -c copy ^
-metadata:s:a:0 language=rus ^
%RESULT_FOLDER%/@fname.mp4
forfiles /M *.mp3 /C "cmd /c %FFMPEG_CMD%"
pause
4. Запускаем файл "ffmpeg_start.cmd". В этой же папке появится новая папка "ffmpeg_result" в которой будут видеофайлы с добавленными аудиодорожками. Если файла с аудиодорожкой у видео нет, то в новую папку это видео не скопируется.
.
Как это работает
1. Команда
mkdir создаёт папку "ffmpeg_result"
2. Команда
forfiles перебирает все MP3 файлы в текущей папке и для каждого запускает программу ffmpeg
3.
ffmpeg создаёт в папке "ffmpeg_result" новый MP4 файл со старым именем
- в который копирует: видеодорожку из MP4, аудиодорожку из MP3, аудиодорожку из MP4 (параметры: -map 0:v -map 1:a -map 0:a -c copy)
- и добавляет метаданные: первая аудиодорожка русская, вторая английская (параметры: -metadata:s:a:0 language=rus -metadata:s:a:1 language=eng)
За инструкцию благодарим
volkov888