One of the things that came up was adding Ogg V/T support to Java/JMF. I had a similar initial response to this: why bother, really. I am a Linux user myself, and I don’t use Ogg. Don’t get me wrong, it is a fine codec, but its limited adoption outside of the open source world (read: My iPod) makes it inconvenient to use for personal media. Joe didn’t even know what it was. That is how big a splash it has really made.
However, I began thinking back to the conversation on Romain’s blog about Java Media and iondb. Now, because Nathan has been an active part of the ROME community in the development of the iondb code, I have seen this project go through many… not quite ready for prime time releases now. They have done a great job at abstracting players for Linux, and adding Ogg support wouldn’t really change the nature of their project. However, when discussing what “media support” in Java actually means, he made this comment:
So, what is necessary then for Java to be able to truly “do media”? Something like Flash’s support for MP3 and its own proprietary Flash Video format? Does the format/codec/engine have to be pure Java code or just part of the platform?
As much as I love the idea, I don’t think platform-wide support for OGG Vorbis/Theora is the answer, unless Sun is willing to make a big investment in media tools for developers. I’ve also not been too impressed with pure Java Theora decoding, even with small files. Built-in MP3 and MPEG-4 support would be welcome. IBM has a nice MPEG-4 codec that supports JMF.
Perhaps partnering with DIVX is a possible solution, since they could offer up developer support, desktop and server tools, much in the same way ON2 does for Flash with their Flix product line.
Now, while I certainly like DivX too, I think there is something to be said for Flash/Flix/FLV. The thing is, Ogg V/T would be perfectly suitable as a “This is Java video” analogue to Flash video. While this doesn’t even begin to address Chris’s issues with JMF from an editing/production standpoint, it would at least offer some of that missing functionality in Java and provide an alternative to QT4J for the handful of consumer products in Java on the market.