Wednesday, June 14, 2006

Meet FMJ, opensource version of JMF

Even though I've just released a library using Sun's JMF hours ago, I didn't actually explain too well the fact of it being a fairly dead technology, last updated in 2004. On the other hand JMF did have huge potential as framework, especially for streaming, mixing and (re)encoding timebased media.

The whole situation reminds me of Macrodobe Director. There's a great product with huge potential being killed off slowly, slowly, very slowly due to corporate internal politics. To their defence, at least Director still is receiving updates, with doubtful new features, though, instead of improving keyfeatures like the 3D engine, which hasn't been updated since sometime around 2001(?). Both products still have quite an active development community. Unlike in Lingoland, some members in the JMF camp started taking things into their own hands and started re-implementing JMF from scratch as opensource initiative. Their project is called Freedom for Media in Java (FMJ) and its first release has just been announced.

Quoting from Ken Larson's announcement this morning, this looks very promising:

1. Video capture on Windows, Mac OS X, and Linux
2. Audio and Video playback on Windows, Mac OS X, and Linux. DirectShow and Quicktime are wrapped used by FMJ on Windows and Mac OS X, respectively. Linux video playback currently requires JMF for demux/codec.

Audio Formats supported:
WAV, AU, AIFF, MP3, OGG. Some WAV formats may not work yet, as WAV is a container format with many internal formats.

Video Formats supported:
On Windows and Mac OS X: any format supported by the native system (DirectShow/Quicktime).

Way to go! I'll testdrive if I can get my stuff to work with this asap...

Tuesday, June 13, 2006

LibCV and JMFSimpleCapture

Trying to keep up with promises given, I've just uploaded the 1st public release of my shamefully basic video capture and computer vision library. All info, examples, docs and source are over there for your perusal.

I especially would like to encourage mac and linux users to give it a spin, since I have no way of testing the code on these platforms.

Also, let me say right here that I don't intend to actively develop or maintain this library (unless I require some things personally). There're still a bunch of filters waiting for release, which could be quite helpful in this context, but most likely will remain independent from this library.

Having said that, the stuff is released under the LGPL. So I encourage anyone interested to build upon this basic framework and see if it can be(come) a viable alternative to the QT4Java approach of Processing's built-in video capture library.

Sunday, June 04, 2006

London Graduate Fashion Week

About a month ago, Moving Brands, the company I work for won a pitch to design the stand for the London College of Fashion at the Graduate Fashion Week, opening tomorrow morning at Battersea Park Arena.

We wanted to do someting quite unusual for a fashion show, so our proposal for the stand was centered around an 8 meter long, interactive table showcasing the work of nearly 200 of students. Each student is assigned a cube holding their personal details and up to 5 pieces of work each. There's a colour scheme in place to group students by courses attended. The cubes can be rotated individually or in groups by visitors hand movements on the table surface. To improve the illusion of a tactile response of this system, I made the cubes moving as if "floating" on water when they're rotated. Also, there's no limit to the number of simultaneous users.

UPDATE: documentation video is now available.

This was the first real camera tracking project I have worked on, and because of the current nightmare to get QT4Java working consistently and reliably with Processing almost forced me to use Director (with an embedded Flash sprite for the camera feed) instead. Though, not giving up that easily and as mentioned previously, I successfully managed to get something working using JMF. Alas, so far it's largely untested (only with 2 different [and quite old] camera models) and is by no means ready for public consumption. But I really am working on it!

Speaking of cameras: Because the tracked surface is also used as projection screen we had to use infrared cameras. Thanks to the ingeniutity of this fine gentleman we modded some cheap webcams and turned them into IR cams for free. The only problem was to find the right models (a lot of the more recent models have their IR filter painted on the lens, not separate) and so it took quite some convincing the staff at PC World to let us open some potential candidates instore before finding the right ones...

I just returned from setting up the stand all day long whilst hacking on the last few changes. Rigging 8 projectors and cameras to join up seamlessly is no easy feat. I'll be at the stand all day tomorrow and in the mornings until Wednesday, maybe see you there... ;)

Also expect semi-live Flickr coverage via ShoZu...