2008-09-16 11 views
15

Этот вопрос перетекает из следующего вопроса:Что это самый простой способ, чтобы обернуть необработанный файл .aac в .m4a контейнер

How do I programmatically convert mp3 to an itunes-playable aac/m4a file?

Во всяком случае, я узнал, как создать файл Aac, а затем Я узнал, что aac - это не только файл m4a с другим расширением файла. На самом деле, мне нужно как-то обернуть aac в контейнер m4a. В идеале я мог бы просто позвонить в командной строке.

+0

Если вы хотите сделать это на Java-пути, не вникая в NDK и FFMPEG, тогда проверьте мой ответ [здесь] (http://stackoverflow.com/a/38369475/1188004). –

ответ

4

mp4box, если вы хотите воспользоваться специальным инструментом; его, вероятно, самый простой способ. ffmpeg тоже может выполнять эту работу.

+3

Чтобы добавить к этому, использование ffmpeg примерно так же просто, как «ffmpeg -i in.m4a -o out.aac». :) – porges

+3

mp4box примерно то же самое, и я бы рекомендовал его по ffmpeg, потому что он помещает атом moov в начале, а не в конец, что важно для прогрессивной загрузки, воспроизведения iPod и т. Д. –

+4

Формат ffmpeg на самом деле : «Ffmpeg -i foo.aac foo.m4a», обертывание raw aac в m4a. – Smar

25

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

Использование FFmpeg, как это:

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

Использование MP4Box так:

MP4Box -add input.aac#audio output.m4a 
+0

@ColonelPanic Что вы пытались? Откуда вы знаете, что это не упаковка? – djeikyb

+0

Консольный выход подсказывал, что 'ffmpeg' перекодировал - это также заняло некоторое время, и файл был существенно другого размера. Но команда 'mp4box' работала отлично и быстро, спасибо. –

+1

Справочная страница @ColonelPanic ffmpeg говорит, что ей нужна копия '-codec '. Спасибо, что поймал это. – djeikyb

2

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

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

+1

Возможно, слово об 'avconv', что это такое, где вы его получите, как оно отличается от' ffmpeg'? – einpoklum

1

Просто используйте любой mp4-Muxer, например Yamb, чтобы создать файл mp4 только с аудиодорожкой aac, а затем измените расширение файла на m4a.