views:

1059

answers:

2

I need to display a series of images (perhaps BufferedImages) with variable frame rates as a video, synchronized with uncompressed audio. I also need the basic media controls of play, pause, seek, audio volume, etc.

Since I don't need to encode, decode, read or write video files, I would prefer to avoid large libraries such as JMF or FMJ. I just need the player. Additionally it would be best to avoid the JNI completely (rules out FMJ), and if the code is open source (rules out JMF).

In essence, I'm looking for the best practices of how to write a Java movie player, or for a library that has already done it. A good example might be Java-only implementation of an uncompressed AVI video player.

Some libraries I've looked at besides JMF and FMJ are: Javid (http://developer.berlios.de/projects/javid/), javampeg1video (http://sourceforge.net/projects/javampeg1video/), java multimedia system (http://sourceforge.net/projects/jmms/) and javavideoplayer (http://sourceforge.net/projects/javavideoplayer/).

Additional detail: I have written a Java decoder for a unique audio/video format (Playstation 1 movies). The project is open source (GPL) and I would like it to be as simple and cross platform as possible. Before saving the decoded video with my simple AVI writer, I want to provide the user with a preview of the decoded video. Thus, as stated above, all I need is the video to sync with played audio as it is all decoded in real-time. It almost seems simple, but I'm sure there are various technical issues of real-time playback in Java that I'm not aware of.

+1  A: 

I don't know if this is what you're looking for, but have you looked at Quicktime for Java here: http://developer.apple.com/quicktime/qtjava/index.html

It says, "QuickTime for Java provides a set of cross-platform APIs which allows Java developers to build multimedia, including streaming audio and video, into applications and applets."

Evan Fosmark
A: 

JVLC is quite a good player that uses the ubiquitous VLC player to play all know video formats. However, it breaks the "no JNI" rule you have set.

Georgios Gousios