1st steps to creating video podcasts (for Drupal)

Date: Sat Apr 26 2014 Podcasting »»»» ffmpeg »»»» Video »»»» H264 »»»» Drupal

The latest episode of the Seven Generations Technosanity Podcast is a video as will be the next few episodes. I've been resisting doing video work partly because it's harder to edit but also the technology is far more complex. But for the episodes in question I need to show some things, not describe them. For technical context, the podcast is on a Drupal site meaning the solution has to fit the Drupal workflow.

Creating the podcast in iMovie'08 was fairly straightforward. While iMovie'08 was a step backwards it's not completely horrid. But one deficiency is the dumbing down of the video export. In iMovieHD the video export ("Share") supported selecting encodings and bitrates and whatnot, and you could squeeze the video down to a reasonable size for users to download. That is... the resulting file ought to be small enough that your audience is able to download and view the video.

In iMovie'08 the Share dialog had only a "user-friendly" nontechnical nonadvanced dialog that only allows selecting between mobile/medium/high quality. Selecting the high quality conversion resulted in a 250 megabyte file for a 25 minute video podcast. I think that's excessive and started looking for alternatives.

But first a bit about enabling the video podcast on my Drupal site. Since my hosting provider doesn't provide me with much disk space I store my large files elsewhere, on my Dreamhost account. The normal Drupal workflow for a podcast is to simply upload the file as a file attachment and then Drupal automagically turns it into a podcast. Voila very simple and straightforward. However storing the file elsewhere prevents this normal Drupal podcast workflow from working and instead I use the RSS Remote Enclosure module. I upload the file to my Dreamhost account then enter the data into the RSS Remote Enclosure fields.

This works rather well but does not generate a player. For audio podcasts I've modified this module to generate code for a flash MP3 player, the player is very small and doesn't interfere with the page layout. The video podcast is in quicktime format (as recommended by Apple) and Apple provides a javascript utility to generate code to invoke the quicktime player. This may work cross-platform except for Linux but I found it to be too large and the video takes over the page. At the moment I'm trying different video sharing websites because many have an embeddable flash based player which I can then embed in my site. More on this later.

I found some interesting guidelines for web video:

200-400kbps output on video with a lot of motion and demanding background yields low quality of the sort on youtube

500k-1mbps is kind of like old VHS tape or 'good' TV

1-2mbps kind of like cable or satellite TV

4-8mbps kind of like good HD video

70-80% of the worlds broadband internet connections easily handle 1mbps. But with higher bitrates you lose audience.

Comparing those guidelines with the video generated from iMovie'08.. they generated for the "1-2mbps kind of like cable or satellite TV" range whereas I'd be happy with the VHS equivalent or lower quality. Maybe.

Specifically iMovie'08 generated a .m4v file encoded as MPEG-4 with the H.264 codec at 640x480, 30 fps, AAC audio at 44100 kbps.

I tried several conversion options:-

ffmpeg is a very complex program which can probably do the conversion. It is however horrendously complex and a command line user interface that doesn't help in any way to decrease the complexity. http://www.ffmpegx.com/ is a Mac GUI program that wraps around ffmpeg and gives buttons to click and whatnot supposedly making it simpler, but I couldn't find a good result using that program.

http://code.google.com/p/podencoder/ - is a script for Linux which does a somewhat different workflow than what I'm envisioning. I read through the script and perhaps it could be adapted. To make it work will require installing tools using Macports.

What I eventually did was purchase Quicktime Pro. That enables extra dialog boxes on QT7's UI which support video conversions. Apple has a pair of tutorials, Creating video podcasts on Mac OS X or Windows, at http://www.apple.com/quicktime/tutorials/videopodcasts.html and http://www.apple.com/quicktime/tutorials/videopodcasts_win.html which go over the process with QT Pro.

It's really as simple as opening the .m4v file in quicktime, and doing an export, making sure to go into the options and select MPEG4 (not MPEG4 ISMA) and selecting: H.264, 640x480, 15 fps, AAC, 44100. With that combination (note 15fps) the 250mb file turned into a 50mb file and still retains enough quality to be useful.