picture home | art | events | music | rack extensions | downloads | pixel blog

omino pixel blog

pixels, motion, and scripting
david van brink // Tue 2007.10.23 22:08 // {after effects gear}

HV20 at 24P

Canon HV20

Finally got a pretty decent video camera: a Canon HV20. Just came out earlier this year, and seems to be all the rage; lucky for me it was also what our little town of Santa Cruz had available on a moment’s notice, at Circuit City.

Nice enough. Not as macho as I’d prefer. I got spoiled borrowing a Canon GL2 from work (they use it to make really really bland training videos). This HV20 is tiny, and doesn’t have the overhead microphone/carry-handle and square sunshade of a real indie camera. Adding a gen-u-ine Canon wide angle adapter and accessory-shoe microphone (not a handle!) helps to bulk it up a little. Oh, and to shoot nicer video, too.

The menu system is all right; after a day or two of attention I learned all of it. You can override the focus and the exposure settings somewhat. It has a variable-speed zoom lever; a ring would be nicer.

24P

The HV20 records SD or HD video, apparently at a full 1920 by 1080, which is nice (for reasons I’ll demonstrate in an imminent post). It can record at either 30fps interlaced, or 24fps progressive. That’s cool.

(To recap — interlaced video is full of annoying horizontal stripes, and progressive isn’t. And 24 is the magic frame rate of real movies, so we take it as axiomatic that it’s “better” than 30 or 60 frames per second.)

Unfortunately, it doesn’t tag the firewire stream with the appropriate 24p markers, and applies a 3:2 pulldown automatically. And I read somewhere on the internetz that this was a specific choice by Canon because it’s a “consumer grade” product.

But! No matter. After Effects can fix it, trivially. Just capture the footage at full resolution. I used iMovie to capture, which works great. It offers a choice to capture at 960 by 540 half resolution; don’t do it!

Then import the footage to After Effects. Right click on the asset and choose the “Interpret Footage” menu item. Click the “Guess 3:2 Pulldown” button and ho ho! it doesn’t guess right every time, you may have to try all 10 combinations of upper/lower and five pulldown cadences.

And here are two QuickTimes showing the same footage as captured, and deinterlaced by After Effects 7.0.

24p in glorious 24p
24p with ugly 3:2

These were shot with a 1/1000th second shutter speed, at 33 1/3rd rpm. These movies show a tiny cropped area from the vast HD capture…

Try the QuickTime single step buttons (or left/right arrow keys) to see the difference between glorious 24fps and ugly, ugly 3:2 pulldown at 30fps. Glorious!

3 comments
Eugenia // Mon 2007.10.29 00:1412:14 am

The second footage is not ugly. You simply forgot to de-interlace before you export. If you had de-interlaced, it would have looked the same.

david van brink // Wed 2007.10.31 10:1810:18 am

Thanks for the pointer!

So… deinterlace on export? I’m not familiar, but it sounds like it would obtain the same result as deinterlace on import? I guess the key is to be sure to do one or the other?

My assumption was that you want to remove the pulldown as early as possible — on the interpret footage, right at the source — so that any further manipulation has flat frames.

The first ae comp is 24fps, with interpreted 24p footage,
The second ae comp is 30fps, with non-interpreted 60i footage — shot with the “24p” setting on the camera. The intent was to show how to extract the flat frames.

I’m still learning my way around the “video” aspects of ae.

Jonas Hummelstrand // Sun 2008.03.9 16:024:02 pm

No, no. David is correct, with the NTSC version of the HV-20 you need to remove the pulldown to get 24P. On the PAL version, you get 25P without all the hassles…

oh, i dont know. what do you think?


david van brink // Mon 2007.10.22 19:05 // {macintosh qt_tools}

qt_tools — AOK on Intel Macintosh

I hate to admit it, but I only last week started using an Intel-based Macintosh. A quad-core 2.66GHz, to be precise. I guess it does feel faster than the dual-core 1.25GHz G4 it replaces. And I was very very worried about my software not working.

But fortunately, everything actually does still work! I use Photoshop CS2 and After Effects 7.0 and even DVD Studio Pro 4, and they work fine. (Oh, I’ll be getting the latests for them, when I can. This is personal use costs, and I don’t use pirateware, so it may be a little while. And then they should really click right along, huh?)

Anyway, this post is to report that my free QuickTime command-line utilities qt_tools seem to work fine on this here Intel Macintosh! Hooray.

(I’ve heard reports that they can be recompiled for Intel with about a 50% performance improvement. And I’ll be investigating that as time permits, but porting software from big-endian to little-endian, or biendian, is not to be taken too casually.)

But what is qt_tools?

Well, you can get the full schpiel at the qt_tools page but generally, it lets you transform movies and images at the command line. Here’s some examples.

$ qt_export foo.mov foo.mp4                                   # convert a movie to mp4
$ qt_export bar.wav bar.aif                                   # convert a sound file
$ qt_export --sequencerate=30 frame001.jpg framesAsMovie.mov  # import frames to a movie
$ qt_export big.mov --size=80,60 tiny.mov                     # resize a movie

It’s very handy for some kinds of bulk processing, and certain production flows. If you’re into shell scripting — a very retro and powerful technology!

3 comments
Alan Latteri // Fri 2007.12.7 18:096:09 pm

qt_tools is awesome. thanks so much for making this. but i am having problems compiling on intel with OSX 10.5

src/qt_export.c: In function ‘makeTgaSettings’:
src/qt_export.c:491: error: ‘tga’ undeclared (first use in this function)
src/qt_export.c:491: error: (Each undeclared identifier is reported only once
src/qt_export.c:491: error: for each function it appears in.)
src/qt_export.c: In function ‘doMovieExport’:
src/qt_export.c:966: warning: ‘FSpDelete’ is deprecated (declared at /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/Files.h:10165)
src/qt_export.c:991: warning: ‘FSpCreate’ is deprecated (declared at /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/Files.h:10130)
make[1]: *** [obj/qt_export.o] Error 1
make: *** [quietly] Error 2

david van brink // Sat 2007.12.8 00:4312:43 am

Hi Alan!

Yikes, you are so right. I get the same result. To fix it, delete src/settings.c. Somehow the release includes that file, but the correct one is obj/settings.c, generated during the build.

That said, I’m pretty sure a straight build for i386 will have subtle problems (though it does seem to work at least basically). The code is — that is, I was — pretty cavalier about constants and literals in the code which are big-endian…

I haven’t really really tested an i386 build yet.

david van brink // Tue 2008.03.18 08:418:41 am

(update — qt_tools is built native for ppc & intel now, http://omino.com/sw/qt_tools/.)

oh, i dont know. what do you think?


david van brink // Mon 2007.10.22 01:14 // {after effects}

Flashing

During “art” in the first grade, I drew geometric patterns with a ruler. Mrs Weinhausen told me that real artists don’t use rulers. Unfortunately, I didn’t heed her wisdom, and now I’m stuck with the crutch of tools. And furthermore, I’m terribly lazy!

So, for better or worse, I’m hooked on scripting every little thing I can.

Suppose you want to animate an occasionally flashing light. You could just sprinkle some keyframes around flashing the intensity of a light source.

But I’m too “lazy” for that, so I script it instead. This also allows the whole thing to characterized and changed more easily. Want more flashes? Just change one value in some code, rather than re-sprinkling all the keyframes. (Of course, for complete control, you might want to time and place each flash… but I’m working in broader strokes here.)

Simple Flashing

I did this in After Effects, and this post will discuss it in that context. But I’ve used the same technique in LightWave and it should apply to any moderne software.

Getting the light to flash like that is pretty easy, with the following expression on the Light:Intensity parameter:

x = lightOption.intensity;
if(random(10) < 9)
	x = 0;
x

So, randomly 1 time out of 10, the light is at full intensity. But there's so much further to go!

++more

oh, i dont know. what do you think?


david van brink // Sun 2007.10.21 11:48 // {general}

Welcome!

Hello.

Welcome to my new pixel blog.

My name is David, and I am a recreational pixel user. Long ago, in a different life, I was one of the first engineers working on QuickTime 1.0 — codenamed “Warhol” — at Apple. These days my day job is software development for some rather dry (but interesting, I assure you!) non-pixel-related industry. But I tend to spend my evenings & weekends moving the pixels (and sometimes audio samples, as well).

I’m strictly a recreational user. I can quit any time I want.

I maintain a couple of freeware projects, including qt_tools, a collection of QuickTime command line utilities, and the Omino After Effects Suite, a free set of cool After Effects plugins.

In this blog, I’ll post bits of works in progress and clever tricks I invent or come across, with an emphasis on scripts and expressions.

I use Mac OS X, Adobe Photoshop, Adobe Illustrator, Adobe After Effects, Final Cut Studio, LightWave, and XCode… so any of those and others will likely be appearing on these pages.

You can mail me at poly@omino.com; if the subject starts with pixelblog my spam filter will be sure to keep it. Otherwise it’s hit or miss.

oh, i dont know. what do you think?


/\/\/\/\/\

Deprecated: Function the_block_template_skip_link is deprecated since version 6.4.0! Use wp_enqueue_block_template_skip_link() instead. in /home/polyomino/omino.com/pixelblog/wp-includes/functions.php on line 6121

0.0332s
(c) 2003-2023 omino.com / contact poly@omino.com