Anoop
Anoop

Reputation: 1305

Java for a video based application: Good choice?

I am in the concept phase of an application that is going to have a lot of Audio/Video input and output. I want to do it in Java; but somehow am not fully convinced yet. What do you think? How bad could it be? And any advices?

Why I am thinking Java:

  1. It's the language I'm most comfortable with.
  2. Easier cross platform migration would be a bonus.
  3. Cannot afford commercial platforms (like .NET) or not good enough in other free alternatives (like Python)
  4. I'm also slightly inclined towards C++/Qt; but that would take more time for me as I'm not great in that and I am a bit worried about maintainability.

Upvotes: 2

Views: 1759

Answers (6)

Cameron O'Rourke
Cameron O'Rourke

Reputation: 303

Rusty, what did you wind up doing? I too have a video app I'd like to do, but really would prefer Java/JavaFX over C++. The thing about the using Flash and/or the current JavaFX video support is that Flash video playback is not frame-accurate. I really need to be able to stop/start/step on individual frames like you can with QuickTime.

Has anyone tried doing playback with Xuggler and Java/JavaFX?

Upvotes: 0

Art Clarke
Art Clarke

Reputation: 2505

If you're interested, check out Xuggler. It exposes all the power of FFmpeg, but as a Java API that runs on Windows, Mac and Linux. The advantage is you get all the power of FFmpeg but from Java. The disadvantage is it requires the FFmpeg native DLLs/shared-libraries to be installed.

Upvotes: 3

Serafeim
Serafeim

Reputation: 15084

I believe that when you want to write an audio/video application, the programming language you will use is the second most important thing. The most important thing is the audio/video framework your application will use since this is what defines your capabilities.

I am aware of two popular generic video frameworks that can be used to accesd most multimedia types: Directshow and ffmpeg. Directshow is tied with windows, so only ffmpeg is left.

Ffmpeg has versions in both windows and unix and, although it is written in C, it can be used from a lot of languages.

There is even a number of java wrappers for ffmpeg (for instance, take a look at xuggle)!

Upvotes: 2

Ash
Ash

Reputation: 62096

C++ would be the first choice because of performance concerns often present in Audio/Video processing as well as the range of available libraries for video/audio.

You do make a good point about being familiar with Java. If you are pressed for time, this is even more important. However if you can spare some time for learning, C++ would be well worth it.

Regarding .NET: The .NET SDK with everything you need is freely downloadable. Get hold of a free IDE such as SharpDevelop and you are up and running. It's Visual Studio that costs money, you don't need Visual Studio to do .NET development.

Upvotes: 1

Tiger
Tiger

Reputation: 507

Rusty.in,

How about trying to do JavaFX Media API. Recently, the version of the JavaFX is 1.2.0 with GUI Application as well. It supports the Swing. The grammar is based on the script style; however, you can deploy the existing Swing components into the JavaFX.

I hope it helps.

Tiger

Upvotes: 0

pmf
pmf

Reputation: 7749

Easier cross platform migration would be a bonus.

Audio and video means you will be dealing with dedicated native libraries and JNI-wrappers for each supported platform; in this case, the cross-platform argument for Java does not really apply.

Upvotes: 2

Related Questions