1

Следующая команда берет mp3, присоединяет к нему изображение и преобразует его в mp4:

ffmpeg -i input.mp3 -loop 1 -i image.png -c: копия -c: v libx264 -shortest output.mp4

Я пытаюсь применить одно и то же изображение к каждому mp3 в папке. Операционная система - Windows 8, и желаемый вывод для файла - mp4.

Мне нужно сделать это для всех mp3-файлов в папке. Как бы я это закодировал?

PS Мне также нужен код, который может прикрепить введение mp4 к нескольким файлам mp4 в папке.

3 ответа3

0

Предполагается, что стандартный Windows- cmd.exe (то есть, нет прекрасного cygwin , Powershell или <insert scripting language here>):

for %f in (*.mp3) do ffmpeg -i %f -loop 1 -i image.png -c:a copy -c:v libx264 -shortest %~nf.mp4

(также предполагается, что нет в пакетном файле; в этом случае % s нужно удвоить до %%)

Использует тот факт , что вы можете прочитать в текущем файле (или директорию, и т.д. в зависимости от того, каких аргументов вы передаете for переменного односимвольного; который вы можете затем получить базовое имя через %~n .

Итак, предположим, что ваши mp3s и image.png находятся в папке « Downloads » согласно вашему комментарию:

  1. Запустите командную строку: <windows key>+r --> cmd --> <enter>
  2. Перейдите в каталог Downloads: cd Downloads
  3. Запустите зацикленную команду ffmpeg : for %f in (*.mp3) do ffmpeg -i %f -loop 1 -i image.png -c:a copy -c:v libx264 -shortest %~nf.mp4
  4. (необязательно) Наслаждайтесь mp4-версиями ваших mp3-файлов с изображением
0

Вы можете сделать это с помощью языка сценариев. Вот небольшой скрипт на Ruby, который должен выполнить эту работу, если вы запустите его в папке, содержащей файлы .mp3 и image.png:

Dir.glob("*.mp3").each do |file|
    system("ffmpeg -i #{file} -loop 1 -i image.png -c:a copy -c:v libx264 -shortest output.mp4")
end
0
  1. Создайте файл и сохраните его с расширением .bat
  2. Напишите код ниже в нем. (укажите правильный файл изображения)
  3. Скопируйте пакетный файл в каталог, содержащий ваши .mp3 файлы.
  4. Предполагая, что путь к ffmpeg.exe задан в переменных среды, выполните командный файл
  5. Найдите конвертированные файлы в созданной папке "конвертировано".

@echo off
mkdir converted
for %%a in ("*.mp3") do ffmpeg -i "%%a" -loop 1 -i image.png -c:a copy -c:v libx264 -shortest "converted\%%~na.mp4"
pause

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .