Я пытался преобразовать файл с помощью pacpl
, но получаю хорошо известную ошибку «256». С флагом -v
FAQ pacpl сообщает мне:
«Файл, который вы пытаетесь преобразовать, - это файл без потерь .m4a. Формат пока не поддерживается FAAC / FAAD».
blockquote>Поскольку faac / faad, похоже, используется в любом другом инструменте конвертации в Ubuntu, как я могу успешно конвертировать форматы?
Вы можете преобразовать файл m4a во flac с помощью инструмента командной строки ffmpeg:
Для установки ffmpeg:
sudo apt-get install ffmpeg
Для преобразования:
ffmpeg -i filein.m4a -f flac fileout.flac
Хотя оба ответа с использованием ffmpeg / avconv (которые, по моему мнению, по сути являются одним и тем же инструментом) работают, у них в настоящее время есть недостаток. А именно, что m4a без потерь часто является 24-битной выборкой, и в настоящее время ffmpeg / avconv обычно заставляет преобразование заканчиваться 16-битной выборкой.
Я полагаю, что использование sndfile-convert (libsndfile) не имеет этой проблемы. Точно так же я считаю, что этого можно избежать, используя mplayer для декодирования m4a перед кодированием его с помощью ffmpeg или flac. Я думаю, что soundKonverter на KDE может сделать это для вас.
В любом случае, что бы вы ни делали, я предлагаю проверить, имеют ли исходный и преобразованный файлы одинаковую битовую глубину выборок.
sudo aptitude install libav-tools
for file in *.m4a; do avconv -i "$file" -f flac "`basename "$file" .m4a`.flac"; done
Просто объединив всю полезную информацию из трех других ответов.
Чтобы проверить битовую глубину ваших файлов mp4:
# cd into desired directory then...
ffprobe -show_streams ./[pick one file to test].m4a | grep -e codec_name -e bits_per_raw_sample
Это должно показать битовую глубину в нижней части вывода.
Чтобы использовать ffmpeg и для всех файлов в папке (при условии, что они не 24-битные (или выше)):
# cd into desired directory then...
for file in *.m4a ; do ffmpeg -i "$file" -f flac "$( basename "$file" .m4a ).flac" ; done
Надеюсь, это поможет.