У меня есть папка, полная аудио файлов с расширением .mp3 .amr и .wav. У меня есть изображение .jpg. Я хочу объединить файл image.jpg с каждым аудиофайлом в этой папке и преобразовать их в отдельный файл vidoe.mp4. Как мне сделать это с FFmpge?
1 ответ
Вот два других ответа на вопросы, которые должны помочь вам в достижении вашей цели.
Источник «Объединение одного изображения + один аудиофайл для создания одного видео с использованием FFmpeg»: Объединение одного изображения + одного аудиофайла для создания одного видео с использованием FFmpeg
Порядок параметров в командной строке имеет значение. Следующие работы для моего случая:
ffmpeg -loop 1 -shortest -y -i image8.jpg -i sound11.amr -acodec copy -vcodec mjpeg result.avi
В более общем случае, где вашими являются изображения image.jpg
и audio.wav
, вы можете использовать следующую команду, адаптированную из вики FFmpeg:
ffmpeg -loop 1 -i image.jpg -i audio.wav -c:v libx264 -tune stillimage -c:a aac -strict experimental -b:a 192k -pix_fmt yuv420p -shortest out.mp4
Это позволит использовать кодировщик libx264
и обеспечить лучшее сжатие, чем кодек MJPEG, использованный выше. Звук AAC со встроенным кодером AAC ffmpeg
.
"Как сделать цикл в командной строке Windows?Источник: https://stackoverflow.com/questions/11192039/how-to-do-a-for-loop-in-windows-command-line
Интерпретатор командной строки действительно имеет конструкцию FOR, которую вы можете использовать из командной строки или из пакетного файла.
Для вашей цели вы, вероятно, хотите что-то вроде:
FOR %i IN (*.ext) DO my-function %i
Это приведет к тому, что имя каждого файла с расширением * .ext в текущем каталоге будет передано my-function (например, это может быть другой файл .bat).
Часть (* .ext) - это "спецификация файлов", и она довольно гибкая в отношении того, как вы указываете наборы файлов. Например, вы можете сделать:
FOR %i IN (C:\Some\Other\Dir\*.ext) DO my-function %i
Чтобы выполнить операцию в другом каталоге.
Есть множество опций для спецификаций файлов и FOR в целом. Увидеть
HELP FOR
из командной строки для получения дополнительной информации.
Хорошо, содержание теперь содержится в самом посте благодаря сообщению от Дональда Дака:D