26
votes

Are there any good libraries for streaming live video using Java? Ideally both ends of the pipe should be written in Java but I am mostly concerned about the video player. What software would you recommend?

UPDATE: It seems that VLC introduces a 1-2 second delay. I need video streaming that is truly live. The record-to-playback delay must be under 300ms.

6
I think you can adjust the buffer sizes in VLC to reduce the delay. Not exactly sure how to do that, and probably unlikely you will get below 300mS, but you maybe able to improve it.simon
@StevenGlick, I doubt that. When I checked in 2009, the delay was so bad (1-2 seconds) that I could visually measure the latency. I recorded a countdown timer on one computer, played it back on a second computer, and compared the difference visually with the monitors side by side. For you to measure a value of 1ms you must be measuring programmatically, which is not trivial to implement. You're going to have to provide a detailed explanation of what exactly you measured and how.Gili
Oops, I had misunderstood the comment above mine what I meant is that you can set the buffer size to 1ms. I am also unable to get the delay below about 1 sec.Steve Glick

6 Answers

8
votes

The best video playback/encoding library I have ever seen is ffmpeg. It plays everything you throw at it. (It is used by MPlayer.) It is written in C but I found some Java wrappers.

  • FFMPEG-Java: A Java wrapper around ffmpeg using JNA.
  • jffmpeg: This one integrates to JMF.
6
votes

You can do this today in Java with the Red5 media server from Flash. If you want to also decode and encode video in Java, you can use the Xuggler project.

3
votes

You could always check out JMF (Java Media Framework). It is pretty old and abandoned, but it works and I've used it for apps before. Looks like it handles what you're asking for.

3
votes

Yes if you want to stream live video you can use RTSP protoco this will allow you to create a video file, which can be play while creating, both operation will work simultaneously. RTSP-Client-Server

2
votes

JMF was abandoned. VLC is more up to date and it reads everything. https://stackoverflow.com/a/5160010

I think vlc beats every other software out there yet, or at least the ones that I know...

1
votes

Hi not an expert in streaming but my understanding is that it is included in th Java Media Framework JMF http://java.sun.com/javase/technologies/desktop/media/jmf/2.1.1/support-rtsp.html