FFMPEG: Конвертируйте файлы m4a в mp3 без значительной потери информации / качества. Автоматизированный битрейт
37556
user3728501
У меня есть загруженные аудиофайлы (около 1000), которые я хочу преобразовать из m4a в mp3, чтобы использовать их для воспроизведения на проигрывателе компакт-дисков с USB-портом.
Я попытался сделать что-то простое, например: ffmpeg -i FILE.m4a FILE.mp3но это, кажется, снижает битрейт до очень низкого значения, а это не то, что я хочу.
Точно так же я не хочу конвертировать, используя постоянный битрейт, такой как 320k, потому что некоторые файлы, которые я конвертирую, имеют размер 320k m4a, а некоторые имеют низкое качество, как 96k m4a.
Кажется, не имеет смысла форсировать 320k, так как некоторые файлы станут во много раз больше, чем нужно. Точно так же нет смысла уничтожать все мои файлы с разрешением 320 КБ, преобразовав их в нечто гораздо меньшее, чем 96 КБ. (На данный момент файлы конвертируются примерно в 50к.)
Кто-нибудь знает, как я могу это сделать? Что я действительно хочу сделать, так это сказать ffmpeg, чтобы он конвертировал все файлы m4a в каталоге в mp3, сохраняя при этом текущее качество звука настолько, насколько это возможно. (Конечно, при преобразовании файлов с потерями в форматы с потерями могут возникнуть некоторые дополнительные потери.)
Спасибо за вашу помощь. Если это невозможно, существует ли какой-либо сценарий, который может определить требуемое качество при индивидуальном преобразовании файлов?
PS: Я работаю на Intel Mac, но у меня есть Ubuntu Box.
Control quality with -qscale:a (or the alias -q:a). Values are encoder specific, so for libmp3lame the range is 0-9 where a lower value is a higher quality. 0-3 will normally produce transparent results, 4 (default) should be close to perceptual transparency, and 6 usually produces an "acceptable" quality. The option -qscale:a is mapped to the -V option in the standalone lame command-line interface tool.
You can use a Bash "for loop" to encode all files in a directory:
$ mkdir newfiles $ for f in *.m4a; do ffmpeg -i "$f" -codec:v copy -codec:a libmp3lame -q:a 2 newfiles/"$.mp3"; done
Get ffmpeg
It's recommended to use a recent build of ffmpeg if possible. See the FFmpeg Download page for links to builds for OS X, Linux, and Windows. You can also follow a guide to compile FFmpeg.
Хорошо, спасибо, команды сработали, но я не думаю, что он делает то, что хотел. Я установил -q: 0, что делает то, что я ожидал для более качественных m4a (производящих большие файлы с более высокой скоростью vbr), но файлы более низкого качества, я думаю, все еще преобразуются в большие файлы, с vbr около 250-260 кб / с. Я бы ожидал, что файлы размером около 96 КБ в формате m4a будут преобразованы в аналогичный битрейт с помощью lame encoder в режиме vbr. Я предполагаю, что я не совсем понял, как работает режим кодирования vbr?
user3728501 10 лет назад
1
Поскольку вопрос касается качества, возможно, будет полезно, если конвертировать в 256 КБ вместо 128.
VessoVit 9 лет назад
4
@VessoVit спасибо, я обновил
T.Todua 7 лет назад
0
3
user205987
This worked for me:
ffmpeg -i testing.m4v -b:a 192K -vn testing.mp3
1
jbowman
Используя существующие ответы в качестве основы, я написал скрипт bash, который должен делать именно то, что задает вопрос на машине с Ubuntu (протестировано 16.04). Вам нужно будет установить, avprobeчто находится в libav-toolsпакете. Вы можете установить avprobeс помощью следующей команды
sudo apt-get install libav-tools
ПРИМЕЧАНИЕ. Было бы разумно сделать резервную копию любой папки, в которой вы запускаете этот скрипт, а также приложить все усилия, чтобы прочитать и понять, что он делает перед запуском.
Я не очень строго проверял YMMV.
#!/bin/bash mkdir "mp3s" for f in *.m4a; do bitrate=$(avprobe "$" 2> >(grep bitrate) | sed 's/^.*bitrate://g' | sed 's/[^0-9]*//g') bitrate="$K" new_filename=$(echo "$" | sed 's/.m4a$/.mp3/g') ffmpeg -y -i "$" -acodec libmp3lame -ab "$" "mp3s/$" done
0
Kaiser Lima
Если вы работаете с частотой 48 кГц и по крайней мере 24-битным во входном файле (из файлового редактора i.ex.), вы -q:a 0будете воспроизводить 20 кГц не с таким большим файлом, как flac ... Но с низким качеством звука, если только вы не уменьшите шум от высоких частот (шипение) путем сглаживания или уменьшения носа аудиоредакторы, созданные в преобразованиях, которые будут воспроизводиться, затем будут использовать файл данных в качестве неслышимого ВЧ, но дорогого шума.