Преобразование FLAC в MP3 с использованием FFMPEG?

577
Desmond Smith

Поэтому я использую ffmpeg для преобразования файлов flac из определенной папки в mp3 с битрейтом 320k.

Я использую этот ответ в качестве ссылки.

https://stackoverflow.com/a/41096234/9259505

Итак, команда, которую я использую в командной оболочке Windows:

ffmpeg -i infile.flac -c:v copy -b:a 320k outfile.mp3 

но это только для одной песни. Как я могу изменить эту команду для циклического перебора всех файлов .flac в папке рабочего каталога?

Я сам попробовал эти 2, но они не работают.

for file in 'C:\Users\...' *.flac; do ffmpeg -i "$file" -c:v copy -q:a 0 "$".mp3; done  ffmpeg -i "*.flac" -c:v copy -q:a 0 outfile.mp3 

Примечание: я использую копию -c: v, потому что обложка альбома в итоге транскодируется, в результате чего получается гораздо больший файл, который я пытаюсь избежать в первую очередь. Таким образом, команда должна копировать потоки.

Операционная система: Windows 10

0
Какая операционная система? В вашем вопросе отсутствует эта важная информация. Пожалуйста, [отредактируйте] это. DavidPostill 6 лет назад 1

1 ответ на вопрос

1
Michael Harvey

Вы говорите, что используете командную оболочку Windows, но первая показанная вами командная строка (та, которая начинается «для файла в») не похожа на Windows, скорее на какую-то команду оболочки Linux. Второй не будет работать, потому что ffmpeg не примет подстановочный знак в качестве спецификации входного файла.

Эта однострочная команда Windows делает то, что вы, похоже, хотите, чтобы ffmpeg (используя указанные выше параметры) принимал в качестве входных данных, в свою очередь, каждый файл flac в текущей папке и выводил в той же папке mp3-файл с тем же имя перед расширением:

По подсказке:

for %A in (*.flac) do ffmpeg -i "%~nA.flac" -c:v copy -b:a 320k "%~nA.mp3" 

Если mp3-файл уже существует, ffmpeg спросит, хотите ли вы перезаписать его.

Примечание: приведенная выше команда создается для командной строки. Это не будет работать в пакетном скрипте. Для этого вам нужно удвоить все знаки процента (%), как это

В пакетном (cmd) скрипте:

for %%A in (*.flac) do ffmpeg -i "%%~nA.flac" -c:v copy -b:a 320k "%%~nA.mp3" 
единственный рабочий код, который я нашел ты MonsterMMORPG 5 лет назад 0

Похожие вопросы