2008-09-16 11 views
15

Diese Frage ist Überlauf aus der folgenden Fragen zu wickeln:Was ist der einfachste Weg, um eine rohe .aac Datei in einen .m4a Behälter

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

Wie dem auch sei, ich gelernt, wie man eine aac-Datei erstellen und dann Ich fand heraus, dass ein AAC nicht nur eine m4a-Datei mit einer anderen Dateierweiterung ist. In der Tat muss ich den AAC irgendwie in einen m4a Behälter wickeln. Im Idealfall könnte ich einfach die Befehlszeile aufrufen.

+0

Wenn Sie es auf Java-Art machen möchten, ohne mit NDK und FFMPEG herumzualbern, dann überprüfen Sie meine Antwort [hier] (http://Stackoverflow.com/a/38369475/1188004). –

Antwort

4

mp4box wenn Sie ein spezielles Werkzeug wünschen; es ist wahrscheinlich der einfachste Weg zu gehen. ffmpeg kann den Job auch erledigen.

+3

Um dies hinzuzufügen, ist ffmpeg Verwendung so einfach wie "ffmpeg -i in.m4a -o out.aac". :) – porges

+3

mp4box ist ungefähr das selbe, und ich würde es über ffmpeg empfehlen, weil es das Moov-Atom am Anfang und nicht am Ende platziert, was wichtig für progressiven Download, iPod-Wiedergabe usw. –

+4

Das Format für ffmpeg ist eigentlich : "Ffmpeg -i foo.aac foo.m4a", rohe aac in m4a einwickeln. – Smar

25

ffmpeg ist ein universeller (De) Muxer/Transcoder. MP4Box ist ein (de) Muxer/Transcoder von GPAC, ein Paket gewidmet MP4 verwandte Software Tech. Im Moment scheint es klüger zu sein, MP4Box zu verwenden, da es das Moov-Atom am Anfang der Datei ratifiziert, was für Streaming und iPod-Wiedergabe wichtig ist.

Verwenden ffmpeg wie folgt aus:

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

Verwenden MP4Box wie folgt aus:

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

@ColonelPanic Was hast du probiert? Woher weißt du, dass es nicht umwickelt? – djeikyb

+0

Die Konsolenausgabe schlug vor, dass 'ffmpeg' neu codiert wurde - es dauerte auch einige Zeit, und die Datei hatte eine deutlich andere Größe. Aber der 'mp4box' Befehl funktionierte perfekt und schnell, danke. –

+1

@ColonPanic ffmpeg's man-Seite sagt, es braucht eine 'Codec-Kopie'. Danke, dass du das verstanden hast. – djeikyb

2

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

In meinem Fall ohne ausdrückliche Flagge Kopie, es erneut codiert der Ton aus irgendeinem seltsamen Grund.

+1

Vielleicht ein Wort über 'avconv', was es ist, wo Sie es bekommen, wie es sich von' ffmpeg' unterscheidet? – einpoklum

1

Verwenden Sie einfach all mp4-Muxer wie Yamb ein mp4 -Dateien erstellen nur mit der aac Audiospur in ihm, dann die zu m4a Dateierweiterung ändern.