Cross platform Java media tools
Every year or so I get an idea for a cool media app, either audio- or video-based. It’s that time of year.
Being a crossplatform guy, Java Media Framework comes to mind. It’s in the Desktop Group at Sun, getting a much needed rework. Unlike some others, I see the JMF glass as half full: a great set of APIs for doing Java media on the desktop, but whose implementation, at least the one we’ve lived with thus far, suffers from a lack of full commitment.
In the meantime I noticed Flumotion did a Java applet to render streaming Theora. All good.
On that royalty free Theora note, what do we need to starting writing applications? Theora itself, a JNI implementation of Video for Linux, a DirectShow filter for Windows, and whatever the equivalent for the Mac is called. All three native capture schemes exist in running code (see UCL vic for most, if not all three). And we need this functionality in one binary executable so we can do p2p video streaming, where sometimes the peer is a server, sometime a client (a servent).
What I don’t know is whether traditional or conventional Theora streaming is constrained to or more naturally expressed over TCP, such that NAT traversal becomes an issue on the consumer side of a p2p interaction (port-forwarding is not an option). You can get around this with UDP based packet flows using STUN and ICE (although watching what two peers have to go through to get that done’ll make your head explode).
And, oh, yeah: we may need a solid Java RTP stack. Also in JMF.
Cross platform Java media is within reach, and has been for some time. It has so much to recommend it, yet has some ways to go before we can avail ourselves of it.
In the meantime, if you care about JMF, drop Tony Wyant at Sun a note. And Jonathan Schwartz. Let these guys know that cross platform media matters, that it adds value to Java, and how they can help.
[tags]theora,ogg,jmf,java media framework,sun[/tags]