Live video streaming using Java?
Asked Answered
C

6

26

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.

Champollion answered 7/8, 2009 at 14:1 Comment(3)
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.Hodges
@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.Champollion
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.Eckblad
M
8

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.
Messner answered 7/8, 2009 at 20:11 Comment(5)
I ended up using VideoLAN (aka VLC Media Player) because it is a superset of ffmpeg. Thank you for the head's up :)Champollion
Ugh. VLC 1.01 isn't suitable for live video streaming. It introduces a 1-2 second delay, even when streaming to the local computer.Champollion
I ended up using VideoLAN (VLC Media Player) in the end in spite of the 1-2 second delay. It seems to be the only game in town right now.Champollion
@Champollion You used its GUI or you made a program to do so?Riyadh
@PrakharMohanSrivastava I embedded the VLC web plugin using the DJ ProjectChampollion
G
6

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.

Gestalt answered 11/12, 2009 at 22:33 Comment(0)
I
3

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.

Impervious answered 7/8, 2009 at 14:12 Comment(0)
G
3

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

Givens answered 17/11, 2016 at 12:3 Comment(1)
Although this may answer the question, however consider summarizing your understanding in the embedded links.Supplication
P
2

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...

Phrygian answered 18/2, 2013 at 19:10 Comment(0)
F
1

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

Farwell answered 7/8, 2009 at 14:15 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.