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.
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.
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!