Конвертировать M4a без потерь во FLAC

Я пытался преобразовать файл с помощью pacpl, но получаю хорошо известную ошибку «256». С флагом -v FAQ pacpl сообщает мне:

«Файл, который вы пытаетесь преобразовать, - это файл без потерь .m4a. Формат пока не поддерживается FAAC / FAAD».

Поскольку faac / faad, похоже, используется в любом другом инструменте конвертации в Ubuntu, как я могу успешно конвертировать форматы?

22
задан 30 November 2012 в 23:54

4 ответа

Вы можете преобразовать файл m4a во flac с помощью инструмента командной строки ffmpeg:

Для установки ffmpeg:

sudo apt-get install ffmpeg

Для преобразования:

ffmpeg -i filein.m4a -f flac fileout.flac
0
ответ дан 30 November 2012 в 23:54

Хотя оба ответа с использованием ffmpeg / avconv (которые, по моему мнению, по сути являются одним и тем же инструментом) работают, у них в настоящее время есть недостаток. А именно, что m4a без потерь часто является 24-битной выборкой, и в настоящее время ffmpeg / avconv обычно заставляет преобразование заканчиваться 16-битной выборкой.

Я полагаю, что использование sndfile-convert (libsndfile) не имеет этой проблемы. Точно так же я считаю, что этого можно избежать, используя mplayer для декодирования m4a перед кодированием его с помощью ffmpeg или flac. Я думаю, что soundKonverter на KDE может сделать это для вас.

В любом случае, что бы вы ни делали, я предлагаю проверить, имеют ли исходный и преобразованный файлы одинаковую битовую глубину выборок.

0
ответ дан 30 November 2012 в 23:54
sudo aptitude install libav-tools

for file in *.m4a; do avconv -i "$file" -f flac "`basename "$file" .m4a`.flac"; done
0
ответ дан 30 November 2012 в 23:54

Просто объединив всю полезную информацию из трех других ответов.

Чтобы проверить битовую глубину ваших файлов 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 

Надеюсь, это поможет.

0
ответ дан 20 December 2020 в 19:52

Другие вопросы по тегам:

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