Кой е най-лесният начин да обвиете необработен .aac файл в .m4a контейнер

Този въпрос се препълва от следния въпрос:

Как да конвертирам програмно mp3 в aac/m4a файл, който може да се възпроизвежда от iTunes?

Както и да е, научих как да създам aac файл и след това разбрах, че aac не е просто m4a файл с различно файлово разширение. Всъщност трябва по някакъв начин да опаковам aac в m4a контейнер. В идеалния случай бих могъл просто да направя повикване до командния ред.


person Community    schedule 16.09.2008    source източник
comment
Ако искате да го направите по Java начин, без да се забърквате с NDK и FFMPEG, проверете моя отговор тук.   -  person Kingston    schedule 14.07.2016


Отговори (4)


mp4box, ако искате специален инструмент; вероятно е най-лесният начин. ffmpeg също може да свърши работа.

person Dark Shikari    schedule 16.09.2008
comment
За да добавите към това, използването на ffmpeg е почти толкова просто, колкото ffmpeg -i in.m4a -o out.aac. :) - person porges; 16.09.2008
comment
mp4box е приблизително същият и бих го препоръчал пред ffmpeg, защото поставя атома moov в началото, а не в края, което е важно за прогресивно изтегляне, възпроизвеждане на iPod и т.н. - person Dark Shikari; 16.09.2008
comment
Форматът за ffmpeg всъщност е: “ffmpeg -i foo.aac foo.m4a”, обгръщане на необработения aac в m4a. - person Smar; 18.01.2011
comment
Сигурен ли си, че не го прекодира? Вижте отговора ми - person Alastair; 13.03.2014
comment
ffmpeg може също да постави атома moov в началото: -movflags +faststart. Да, това е с едно o в movflags. - person MSalters; 15.06.2017
comment
Както е посочено от Alastair, трябва да добавите опция -acodec copy, в противен случай потокът се кодира повторно. - person Gras Double; 05.06.2018

ffmpeg е (де)мултиплексор/транскодер с общо предназначение. MP4Box е (де)муксьор/транскодер от GPAC, пакет, посветен на свързаните с MP4 софтуерни технологии. В момента изглежда по-разумно да се използва MP4Box, защото той прави moov атома в началото на файла, което е важно за стрийминг и възпроизвеждане на ipod.

Използвайте ffmpeg така:

ffmpeg -i input.aac -codec: copy output.m4a

Използвайте MP4Box така:

MP4Box -add input.aac#audio output.m4a
person Community    schedule 10.06.2011
comment
@ColonelPanic Кое пробвахте? Откъде знаеш, че не се увива? - person djeikyb; 29.01.2013
comment
Изходът от конзолата предполага, че ffmpeg се прекодира - също отне известно време и файлът беше със значително различен размер. Но командата mp4box работи перфектно и бързо, благодаря. - person Colonel Panic; 29.01.2013
comment
Страницата за ръководство на @ColonelPanic на ffmpeg казва, че се нуждае от -codec copy. Благодаря, че разбра това. - person djeikyb; 30.01.2013
comment
Нямам късмет за нито едно от двете, ffmpeg каза, че входът е повреден, MP4Box преобразува, но записа само 1,5 секунди от аудиото (всъщност е дълго 20 минути). - person Rob; 16.01.2014
comment
Използвах MP4Box и не знам дали има значение, но добавих -ipod в края и работи добре с iTunes. - person robotik; 06.09.2018
comment
интересно е, че полученият капсулиран m4a е по-малък от необработения aac. изглежда, защото има заглавка на пакет, която е по-къса в m4a. - person robotik; 06.09.2018

avconv -i input.aac -acodec copy output.m4a

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

person Community    schedule 13.03.2014
comment
Може би няколко думи за avconv, какво е, откъде го получавате, как се различава от ffmpeg? - person einpoklum; 10.01.2016
comment
Срещал съм същата ситуация с ffmpeg. Без добавяне на тази -acodec copyопция, потокът се кодира повторно. Но не мисля, че е странно, предполагам, че е логично от гледна точка на командния анализатор. - person Gras Double; 05.06.2018

Просто използвайте всеки mp4-Muxer като Yamb, за да създадете mp4-файл само с aac аудиозаписа в него, след което променете файловото разширение на m4a.

person Community    schedule 11.12.2017