Конвертировать.flac to. mp3 с ffmpeg, сохраняя все метаданные
Как я могу конвертировать .flac to. mp3 с помощью ffmpeg, сохраняя все метаданные (то есть Преобразуя комментарий Vorbis.flac файлы в ID3v2 метаданных. mp3)?
7 ответов:
следующая команда сохраняет высокое качество on. mp3 (320 kbps) и метаданные .файлы flac преобразуются в формат ID3v2, который может быть включен в файлы. mp3:
ffmpeg -i input.flac -ab 320k -map_metadata 0 -id3v2_version 3 output.mp3
идеальный ответ выше. Я использую его вместе с find, чтобы добавить все файлы FLAC в поддерево iTunes с помощью этой команды
find . -name "*.flac" -exec ffmpeg -i {} -ab 160k -map_metadata 0 -id3v2_version 3 {}.mp3 \;
чтобы автоматически добавить полученные файлы в iTunes, получите каталог импорта iTunes с помощью
find ~/Music/ -name "Automatically Add*"
результате, например
/Users/sir/Music//iTunes/iTunes Media/Automatically Add to iTunes.localized
затем запустите, например
find . -name "*.mp3" -exec mv {} "/Users/sir/Music//iTunes/iTunes Media/Automatically Add to iTunes.localized/" \;
для автоматического добавления всех преобразованных треков в iTunes.
если вы хотите сэкономить немного места, попробуйте рекомендацию hydrogenaud.io:
очень высокое качество: HiFi, домашний или тихий прослушивание, с лучшим размером файла
-V0 (~245 kbps)
,-V1 (~225 kbps)
,-V2 (~190 kbps)
или-V3 (~175 kbps)
рекомендуется. Эти настройки VBR обычно дают прозрачные результаты. Слышимые различия между этими пресетами могут существовать, но они редки.источник: http://wiki.hydrogenaud.io/index.php?title=LAME
если вы хотите использовать эту опцию в ffmpeg, вы должны использовать
-q:a 0
псевдоним.контроль качества
-qscale:a
(или псевдоним-q:a
). Значения специфичны для кодера, поэтому для libmp3lame диапазон равен 0-9, где более низкое значение является более высоким качеством. 0-3 обычно дает прозрачные результаты, 4 (по умолчанию) должны быть близки к перцептивной прозрачности, а 6 дает "приемлемое" качество. Этот вариант-qscale:a
сопоставляется-V
опция в автономном инструменте интерфейса командной строки lame.Источник:https://trac.ffmpeg.org/wiki/Encode/MP3
если вы хотите ID3v1 метатеги тоже, вы должны добавить
Я тестировал следующую команду для преобразования до
outfile.mp3
:ffmpeg -i infile.flac -q:a 0 outfile.mp3
начиная с Ubuntu 16.04, приведенная выше команда, похоже, копирует (большинство? все?) метаданные.
-q:a 0
говоритffmpeg
для использования самого высококачественного VBR.однако,
ffmpeg
перекодировал мой альбом изjpeg
доpng
, что увеличило размер обложки.Stream mapping: Stream #0:1 -> #0:0 (mjpeg (native) -> png (native)) Stream #0:0 -> #0:1 (flac (native) -> mp3 (libmp3lame))
(Я думаю, что приведенное выше преобразование имеет смысл учитывая, как
ffmpeg
работает.)после некоторых раскопок, я нашел
-c:v copy
опция, которая указывает, что видеопоток должен быть скопирован, а не перекодирован. Полная команда:ffmpeg -i infile.flac -c:v copy -q:a 0 outfile.mp3
приведенная выше команда приводит к:
Stream mapping: Stream #0:1 -> #0:0 (copy) Stream #0:0 -> #0:1 (flac (native) -> mp3 (libmp3lame))
чтобы рекурсивно конвертировать в mp3 все flac файлы во вложенных папках, я использовал эту команду:
find '~/Music/' -iname '*.flac' -exec bash -c 'D=$(dirname "{}"); B=$(basename "{}"); mkdir "$D/mp3/"; ffmpeg -i "{}" -ab 320k -map_metadata 0 -id3v2_version 3 -acodec libmp3lame "$D/mp3/${B%.*}.mp3"' \;
он создаст папку с именем " mp3 " внутри одного с файлами flac и, внутри папки mp3, он сохранит относительные mp3-файлы с битрейтом 320kbps, не сохраняя старое расширение файла в имени.
Я знаю, что это не было задано, но учитывая, что одна из причин, по которой это делается (по крайней мере, это то, что я хотел сделать), заключается в том, что музыка может быть импортирована в Apple iTunes, который не поддерживает FLAC. В таком случае имеет смысл конвертировать FLAC в собственный формат Apple без потерь, m4a. I использовал эту команду для преобразования всех файлов в текущей папке, сохраняя при этом аналогичные размеры файлов.
find . -name "*.flac" -exec ffmpeg -i {} -map_metadata 0 -acodec alac {}.m4a \;