I agree JMF is currently complete crap. However I’ve been told that Sun is interested in making it not so crappy. The architecture is almost there for something cool that would work… the problem is that it is of such low quality that it is unusable. (Though some people have managed to make it do something useful for them.)
I looked at it about 2 years ago when I needed something to remotely monitor a video stream - exactly what JMF is supposed to be good at - it sucked, it simply didn’t work properly at all, audio/video sync was off by a minute or more. Video playback would be very slow until audio lagged by over a minute, then miraculously the video playback could keep up. It was such a total pain to deal with that I ended up writing my own code to stream JPEG frames and raw audio and that worked better. Sad.
I think the right way to do this, given that JMF will not be better in time for anyone to care, is to write JNI bindings to play media via whatever the platform would normally use, DirectShow on Windows, QuickTime on Mac, and whatever you can get to work on Linux (good luck) - I think the popular thing is “Video for Linux”.