Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

For the past 2-3 weeks I've been searching for different ways to implement custom video streaming and in more general video capturing and manipulating, going through DVR-cards, Video Capture Cards and stuff like that.

Somehow JMF was able to stay out of my sight for all this time, but since I find out about it I'm more and more sure that this is a comfortable level for me to start playing around with video and stuff.

One major topic that occurs to me while searching for more info was the presence of many posts where people were complaining about the fact that any particular camera ( most of the time I think they mean web cameras) doesn't work with JMF. Even though there are a lot of different cameras (not necessarily a web cam) that are not that expensive I want to play it safe and buy one that is proven to work well with the JMF.

Also due to lack of experience maybe this is irrelevant but since I'll buy the camera mostly for learning and experimenting I want to have the maximum freedom possible to mess with different features, options and so on.

share|improve this question
add comment

1 Answer

up vote 2 down vote accepted

I currently support legacy software that uses JMF to integrate a web camera into a Java based kiosk software.

While it is neat to play around with if you are learning, I would highly recommend against using it in any production application you are planning. The following are a number of drawbacks:

It is a Dead Project

It hasn't been active for over 5 years now, meaning that there could be compatibility issues in future versions of the operating system that make it completely incompatible. Further, any bugs that you might run into will never be fixed.

It is Closed Source

Even if you encounter a bug and feel adventurous enough to try and fix it, you will not be able to because it is closed source and Oracle has no intention of distributing it.

It is Old

It is painfully old and really is only a good solution for a Windows environment. Perhaps you would like to run your application on a Mac or Linux, it wouldn't work very well as support for these is lacking.

It must be installed on the client

There are a number of binaries that must be installed on the client machine for it to work correctly, other libraries don't require this.

Knowing all of that I will say that I have tried JMF on a vast number of web cameras, integrated and standalone and it was perfectly compatible with them (on Windows). I have never once encountered a webcam that it wasn't able to recognize or use.

There is the FMJ project which is an open source replacement for JMF, however it seemed a bit buggy to me and I had trouble getting it to work correctly. It does not appear to be fully featured.

My personal recommendation is JavaCV. It is an open source Java wrapper to the popular OpenCV framework, which wraps functionality for media devices and hardware accelerated media allowing this functionality to be easily used within a Java application that is truly Write Once, Run Anywhere.

Without having to install OpenCV, I was able to write a Java WebStart application (with full permissions of course) to utilize a webcam on multiple operating systems. The learning curve is a bit higher though.

While JMF is easy to get started with and has a lower learning curve, JavaCV is far and away the better choice for webcam integration and capture in a Java application.

share|improve this answer
    
Thnaks, a helpful info, a bit disappointing too. So the camera is the least of my problems..? –  Leron Nov 23 '12 at 7:39
    
@Leron I think the software is the bigger choice here because I consider my time to be more valuable than a simple webcam. I haven't found a webcam that didn't work with JMF, I am not saying that is true for all webcams but it has worked fine for me with several different kinds. I have also had good luck with JavaCV in recognizing webcams. Try looking on Craigslist for a cheap used webcam if you are concerned about spending too much. If it doesn't work then sell it and get your money back. –  maple_shaft Nov 23 '12 at 12:41
    
Sorry, you've got me wrong. I see that you have experience in the field so I try to make the best decision. The money is not that big of concern. I'm doing this as part of my master graduation I want it to be as practical as possible and I really am into video processing so if I could get some valuable experience for a real world situation - it would be perfect. That said, I don't want to learn something too complicated just to do something simple also I didn't know that JMF is so obsolete so do you think that learning JavaCV really worth the effort in the long run? –  Leron Nov 23 '12 at 13:02
    
@Leron I absolutely think JavaCV is worth the investment of time, especially if you are wanting to learn about video processing. It has a wealth of functionality and features where JMF lacks. –  maple_shaft Nov 23 '12 at 13:31
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.