16

Is there a command line tool for Windows to extract audio aac from mp4 ?

1
  • How to change compatible brand with mp4box? -brand doesn't work!
    – Dr.jacky
    Nov 10, 2015 at 11:13

4 Answers 4

12

FFmpeg can do it. Here is a list of commands that might come useful for you. Go here for instructions.

Example:

ffmpeg -i INPUT.mp4 -c copy -map 0:a:0 Output.aac
  • -i: input file
  • -c copy: copies the bitstreams without re-encoding
  • -map 0:a:0: selects track from: 1st input file -> audio tracks -> first track (1st audio track from 1st input file)

Note that it would work similarly with avconv, which is a fork of ffmpeg.

4
  • 1
    Only linking to a solution is bad practice. At least give some examples.
    – erik
    Jul 4, 2015 at 21:58
  • 1
    If there's only one audio stream inside the MP4, the -map argument is not necessary, ie. writing this is enough: ffmpeg -i INPUT.mp4 -c copy Output.aac
    – miyalys
    Sep 22, 2015 at 12:21
  • Here is how to create in batch mode. First create a sub-folder "out" where your mp4 files are. Then, "open command window" to the mp4 folder and paste the following for %f in ("*.mp4") do C:\yourpath\ffmpeg\bin\ffmpeg -i "%f" -c copy -map 0:a:0 out/"%~nf.aac" Jun 4, 2017 at 21:29
  • How do you do this when you want to extract ALL audio tracks?
    – rlittles
    Mar 13, 2023 at 22:54
13

mp4box can also do this.

To demux/extract aac from mp4 (assuming audio is the 2nd track):

mp4box -raw 2 video.mp4

This will automatically create output file "video_track2.aac"

(Use mp4box -info video.mp4 to get a list of the tracks in the MP4 file.)

If you wanted control over the output filename, you would do

mp4box -raw 2 video.mp4 -out audio.aac

If you wanted to remux back into mp4 container (i.e. for iTunes) you could do:

mp4box -single 2 video.mp4 -out audio.m4a

You could then put this in a batch script to operate over all the files in a directory:

for %%f in ("*.mp4") do (

mp4box -single 2 "%%f" -out "%%~nf.m4a"

)

(batch script inspired by videohelp and stackoverflow)

Download links:

1
  • 1
    +1 Thank you, the -single command is exactly what I was looking for (it adds MP4 info to -raw)
    – Martin
    Sep 16, 2015 at 21:44
7

Here’s the actual commands to use since all the provided links don’t actually give them, and anyway: links rot and die so should always be replaced with actual answers on stackexchange.

avconv -i input.mp4 -vn -c:a copy output.m4a
2
  • Worked great (with parent project "ffmpeg.exe" instead of "avconv.exe") and fixed .aac output problem of inaccurate timecode. Turns out m4a is a proper container format.
    – SushiGuy
    Nov 2, 2016 at 2:16
  • I'm getting "Output file #0 does not contain any stream"
    – Chris
    Jun 18, 2019 at 11:11
0

I first just use mkvtoolnix to convert the MP4 to MKV and use mkvextract gui to extract the needed track. Lot less complicated and full GUI. Absolutely zero change in any component whatsoever.

2
  • 1
    If it’s less complicated, can you please describe how to do what the OP wants to do with these tools?  Also, note that the question asked for a command line tool. Oct 20, 2017 at 12:33
  • Actually mkvtoolnix is a graphical front end for the command line mkvmerge.exe I believe you can find the command line switches and command formatting information on line too. The GUI also has the option of creating batch files for working on multiple files.
    – user38660
    Oct 23, 2017 at 5:53

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .