Scripting Video Changes in Lion: avconvert, pcastaction & podcast

The avconvert command is a new addition in OS X Lion that allows administrators to quickly and easily convert video from one format to another using presets for video conversion. The presets are mostly common Apple formats tuned to specific devices.

In its simplest form, avconvert uses a preset, a source and then an output to convert the source to the output using the preset to define the format to use for conversion. A useful preset is the 640×480 one. To convert this using this idea:

/usr/bin/avconvert --preset Preset640x480 --source /Convert/test.mov --output Converted/test.mov

While some of the presets are pretty self explanatory, I haven’t gone through them all to see their specific outputs. Simply regressioning through each and then doing a get-info on the resultant QuickTime should net such a result.

You can also use avconvert to extract audio or video only, to change data rates, track height and width, convert codecs, change frame rates and event o frame reordering. You can also specify a closed caption track, thumbnail tracks and all kinds of other cool stuff. While avconvert is the latest addition to video augmentation commands, the pcastaction command has also received some new features. I had previously written up a list of verbs for pcastaction at http://krypted.com/mac-os-x-server/pcastaction-verbs. This list is further enhanced in Lion. New verbs include:

  • addchapter – adds a chapter at a specified time
  • addtracks – add tracks using an optional offset and layers
  • deletetracks – deletes audio, video or audio_and_video tracks
  • extracttracks – outputs audio, video or audio_and_video tracks
  • flatten – flattens .mov, .m4v, .m4a and .m4b movies
  • join – joins two input files into an output file with an optional gap
  • qtimport – prepares QuickTime files with optional chapterizing
  • qtinfo – obtains keys from QuickTime files
  • sharewithpodcastlibrary – option for submitting a file to another Podcast Producer library
  • split – splits a QuickTime movie and outputs two files that are split at the time specified in the –time option
  • trim – specify start and end and remove the rest of the file

The podcast command, used to run Podcast Producer workflows is also still around and can be very useful. While there isn’t new stuff, it is worth mentioning that –addacl becomes –addaccess, –make explicit becomes –makefeedexplicit and –makenonexplicit becomes –makefeednonexplicit. There’s also the long, long awaited option for –removeepisode. This last option allows administrators to remove episodes from the Podcast Producer library based on the UUID of the episode. In my testing, you still need to remove the entry from the blog if you are also exporting episodes to the a blog, but this is basically what we were doing in the Deleting a Podcast post I did some time ago at http://krypted.com/mac-os-x-server/deleting-a-podcast-in-podcast-producer, just they wrap the three commands into one option of the podcast command. Still look to the asset removal article I did for actually scrubbing files (http://krypted.com/mac-os-x-server/scrubbing-assets-from-podcast-producer) . Feed removal is also still manual: http://krypted.com/mac-os-x-server/removing-feeds-from-podcast-producer.

ACL management remains about the same (http://krypted.com/mac-os-x-server/podcast-producer-workflow-acls). While I never got around to writing up how to programatically manage ACLs in Podcast Producer, it is worth mentioning that podcast’s –addacl option and –enableacl will allow you to do so. They, along with other options in podcast and pcastaction are much better documented in the man pages in lion, so the things I couldn’t get to work in 10.6 should be sorted out somewhere in 10.7.

Finally, while nothing new, the work I did on image file automation ( http://krypted.com/mac-os-x/automating-image-file-changes) with sips I now have hooking into podcast workflows. I hope to publish an article on this at some point in the future, but the idea is a workflow where you drop an image and a video into a folder (or use an upload dialog) and it watermarks the video with a compressed-down version of the imageā€¦ Also, avconvert offers a perfect compliment to podcast workflows. I’ve had a number of instances where people were trying to feed pcastaction formats that were unsupported, video that was too large or other problematic inputs and so avconvert allows us to sanitize the inputs for pcastaction or podcast prior to managing our workflows. With launchdaemons watching directories this provides some of what Final Cut Server was able to provide, only without the database of assets, easy way to tag them, etc, etc, etc, etc. Overall, a very nice incremental update to Podcast Producer and en masse video management in Lion. Nothing jaw dropping or massive, but some nice new features, better documentation and in my testing so far, more overall stability.

3 Comments

  • Pingback: Tales of a Minnesota Geek » Blog Archive » links for 2011-07-26

  • September 8, 2011 - 12:22 pm | Permalink

    Hey Charles,
    Only avconvert and sharewithpodcastlibrary are new to PcP-Lion.
    Running
    $>pcastaction

    on a 10.6 machine will give:

    Podcast Producer action task, version 2.0
    Copyright 2007 Apple, Inc.

    usage: pcastaction [options] [args]
    Type ‘pcastaction help ‘ for help on a specific subcommand.

    Available subcommands:
    addchapter
    addtracks
    annotate
    approval
    archive
    chapterize
    compressor
    deletetracks
    documents2movie
    encode
    extracttracks
    flatten
    getposterimage
    getpreviewmovie
    groupblog
    iTunes
    iTunesU
    jabber
    join
    mail
    merge
    notify_itunesu
    pip
    postflight
    preflight
    publish
    publish2finalcutserver
    publish2folder
    publish2library
    qceffect
    qtimport
    qtinfo
    shell
    split
    template
    title
    trim
    unpack
    upload
    userblog
    watermark
    wikiserver
    workflow

    By specifying ‘–no_fail’ pcastaction will ignore any failures and always exit with an exit code of 0.

    $>pcastacion help the_action_you_want_to_run and a lot of trial and error to test them.

  • September 8, 2011 - 2:24 pm | Permalink

    The list of pcastaction verbs that I put in the article should just be the new ones or ones that changed between the releases, so sorry for causing confusion by the wording there.

  • Comments are closed.