Take the 2-minute tour ×
Ask Different is a question and answer site for power users of Apple hardware and software. It's 100% free, no registration required.

I am a huge fan of HandBrake. It is the epitomé of simple. Select a video file (or DVD), select a preset, select an output path, click Start. A certain amount of time later relative to the size/quality of the content, and you have yourself a pretty much perfect video file suitable for the medium of your choice.

I've been looking for similar qualities in an Audio Converter, and more preferably, an Audio Extractor (from a given video file). I would love to be able to drag a video file into an application, specify that I want the Audio File in AAC at a given bitrate, click Start, and let the app do the rest.

I am not averse to using Handbrake to suffice the conversion aspect of this, so long as the audio extraction after the fact is a simple process. The point is to take as few steps as possible.

Any tips? Apps? Ideas?

share|improve this question
    
Fission is a good utility for extracting Audio Data from a Video FIle, and I was getting ready to do it the old fashioned way, track by track, manually. Not my preference. I had the idea afterward to Applescript it, but unfortunately it appears that Fission does not have an AS Dictionary. –  Jason Salaz May 1 '11 at 1:30
    
@Jason considered some UI scripting to talk to Fission? –  Nathan Greenstein May 1 '11 at 2:02
    
Is that generally primitive Applescript when a given app doesn't have a dictionary? Click the menu named "File". Click the menu item named "Save". Stuff more or less like that? –  Jason Salaz May 1 '11 at 2:11
    
@Jason yep. But may be better than doing it by hand, depending on how many of these you plan on chugging through. –  Nathan Greenstein May 1 '11 at 2:31
    
I stumbled across an entry on Handbrake's FAQ today: I just want audio, not video. Can I do that? Not with HandBrake, no. You could just encode the video at a low resolution with a fast low quality encoder like ffmpeg, then extract the audio track. Or you could use OSEx. Unfortunately, it's PPC only. Booooo! –  Jason Salaz Oct 10 '11 at 23:55

4 Answers 4

up vote 9 down vote accepted

I finally found the exact combination I needed, and I found it in ffmpeg.

I will expand on the question a bit and spell out the fact that I was already working with mp4 contained video/audio, so MP4 Video (.m4v) and AAC Audio (.m4a). I absolutely wanted an as-is version of the audio extracted from the video.

First off, it's pretty easy to install things like ffmpeg, mplayer, things built off them, and similar open source packages nowadays. Between Rudix, Homebrew, MacPorts, and Fink (does anyone even use fink anymore?), third party software is a snap to install.

So, after installing ffmpeg, and having the ffmpeg accessible at the command line, I ran a command like this:

ffmpeg -i videofile.mp4 -vn -acodec copy audiotrack.m4a

ffmpeg: The command.

-i videofile.mp4: The source video file.

-vn: Do not record (do not consider) video data.

-acodec copy: Copy the audio source as-is, here's where all the magic is. ffmpeg will write the audio data out as various supported codecs, but specifying copy leads a bit-for-bit exact copy of the stream. Coupled with disabling video via -vn leaves you with a lone audio track inside an mp4 container.

audiotrack.m4a: The output filename.

I can't believe something like this was so difficult and hidden for so long.

Since I always intend to rip aac audio data out of an mp4 container/video, I wrote a quick little script to do it.

#!/bin/bash

INFILE="$1"
TMPOUTFILE="${INFILE%.*}"
OUTFILE="${TMPOUTFILE##*/}.m4a"

ffmpeg -i "${INFILE}" -vn -acodec copy "${OUTFILE}"

Now, I simply invoke rip_m4a_from_mp4 somevideofile.mp4 and I am left with an audio only version with the same filename, ending in m4a instead.

Simple! For me anyways. No GUIs, lightning fast, this is just one of those things that the command line does better.

share|improve this answer
    
Feasibly, you could replace m4a on line 5 with $2 and specify the new extension on the command line. That way if you're working with something else, and know what the audio is, you could specify it. I may do this myself and change the script name to 'rip_audio_from_video'. Generic! –  Jason Salaz Jan 6 '12 at 17:09
    
To get started. ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" then brew install ffmpeg. Now follow the instructions above. –  boyfarrell Nov 9 at 22:50
    
Homebrew's homepage is brew.sh . After following the instructions on that page (just in case they change), brew install ffmpeg. And then yes, then you can follow my steps. –  Jason Salaz Nov 10 at 22:41

I would drag the movie into GarageBand. GarageBand will split the file into audio and video, at which time you can delete the video track (leaving you with just the audio track).

You can then click the Send Song To iTunes option in the Share menu (see pic). This will then come up with the various formats you want to export to.

enter image description here

Best of all, this is free :) as all Macs come with GarageBand. Plus it also allows you to adjust aspects of the audio such as speed and volume.

Having said that, if you want a truly automatic solution, and are comfortable in the command line with Terminal, let me know in the comments and I'll come up with a script to allow you to do this.

share|improve this answer
    
I don't intend to do this for one reason (unless I'm wrong, please feel free to correct me): Recompression. The video files already have significantly compressed audio data, and I wish to preserve the original audio data as much as possible. Fission's killer feature is "lossless editing and reexporting". Not to even mention that GarageBand is really really slow for tasks like this :/. However, this is a wonderful solution for a task that fulfills the subject, so I've +1'ed you for that aspect. –  Jason Salaz May 2 '11 at 7:36

You can do this directly in the Finder, starting with Mac OS X 10.7 (Lion), as described at OSX Daily.

The short answer is, select the file or files in the Finder, then ctrl-click and choose Services -> Encode Selected Video Files.

Note that you may need to enable this service in the Keyboard preference pane.

enter image description here

share|improve this answer

Quicktime 7 will do the work really easily.

Just open the video, and go to File > Export > Sound to AIFF/AU/Wave > select your path and you're done! :)

share|improve this answer
    
Looks like I may need to find my Snow Leopard disc... –  Jason Salaz May 2 '11 at 17:12
    
@vxjasonxv you don't have to. You may downloaded via the provided link.. –  nuc May 2 '11 at 17:20
    
Oh, thanks! I didn't really think the link would actually be substantive in that manner. –  Jason Salaz May 2 '11 at 21:38
    
Does the same pitfall I added to Rob's answer apply here? I can "save a wave" of the audio, but it's already compressed, and in theory in order to use it I'd have to recompress it again, which I'd rather not do. –  Jason Salaz May 14 '11 at 4:16

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.