Podcast Transcoding with FFmpeg and AtomicParsley
Posted on July 10th, 2008 in Video
There are a plethora of ways to transcode your videos into a podcast-compatible format. We wanted to give you a quick walkthrough of how we use FFmpeg and AtomicParsley to do it.
First things first — check out Apple’s technical specifications to understand more about the podcast feed format and iPod-compatible video specifications. This post is going to focus on creating 320×240 videos in M4V format (which is really MPEG-4 video format) with a single audio channel. Why not 640×480? There’s some additional work that you have to do to update the M4V metadata so that the video will sync properly to video iPods and we’re still experimenting with it. Why a single channel of audio? Technically we should be able to do things in stereo (two channels of audio), but we ran into issues in production with the audio cutting out midway through some of our videos, and using a single channel of audio seemed to resolve the problem. You may not run into this issue so we’ll point out where to tweak the transcoding recipe so that you can use one or two channels.
The rest of this post assumes that you have the following software installed:
- FFmpeg - Open source video transcoding tool
- AtomicParsley - Open source tool for manipulating metadata in MPEG-4 videos
If you have a Mac and use MacPorts, here’s the easy/lazy way to do it:
sudo port install ffmpeg +lame +libogg +vorbis +faac +faad +xvid +libx264 +a52sudo port install AtomicParsley
If you prefer to download and compile the packages, there are a number of useful resources to help guide you based on the operating system you are using — so we’re going to skip diving into additional detail there.
Step 1 - Transcode the video
We basically follow the recipe in Robert Swain’s post:
ffmpeg -i [input file] -f mp4 -acodec libfaac -ab 128k -ac 1 -vcodec libx264 -b 768k -flags +loop -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 -flags2 +mixed_refs -me umh -subq 5 -trellis 1 -refs 5 -coder 0 -me_range 16 -g 250 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -maxrate 768k -bufsize 2M -rc_eq 'blurCplx^(1-qComp)' -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 -level 13 -s 320x240 -y [output file].m4v
A couple notes here:
- If you use a Mac and are on Tiger vs. Leopard, you’ll need to use
x264versuslibx264for the-vcodecvalue - Change
-ac 1to-ac 2if you want to try with 2 audio channels
Step 2 - Embed an image in the video’s metadata
Want a specific image to appear when your podcast videos display in coverflow?

Here’s where AtomicParsley works its magic.
AtomicParsley [output file].m4v --artwork [image] --overWrite
Note that per the Apple specs, you should use a 600×600 jpg or png image.
That’s all there is to it. Double-click on your M4V file and it should play in iTunes. Sync to your iPod and enjoy your video!


