Other Ways Besides JMF to Play Media in Java - java

I am currently using JMF. The reason why I am straying from JMF is the lack of format support. I have looked into FMJ and have not had much luck getting it to run. Recording media is not an issue, I just need a way to display it. My application is swing based. Anyone recommend a library or framework that they have worked with that is good for playing media. Could you tell me about your experience with it?
Thanks

..Recording media is not an issue, I just need a way to display it. ..
Look into the Java Bindings for VideoLAN.
..Could you tell me about your experience with it?
I've not used it. JMF is good enough for my immediate purposes.

Related

Using Sphinx4 on Android

I am really new to the java & android apps development. Currently I'm doing a prototype application about the voice recognition. Which use the sphinx4 speech recognition. I'm really no idea that, is that Sphinx4 can be used on the android SDK?
Using Sphinx4.0 to build a speech recog. Android application (this shows that, it can't)
https://sourceforge.net/p/cmusphinx/discussion/sphinx4/thread/ce6ee093/ (But this said it can.)
if yes, i really no idea how to make use of the sphinx4, anyone can kindly provide the guide for me to complete the prototype?
Thanks for your kindly help.
It is possible to run Sphinx4 on android, however, you need to remove sphinx4 parts that use desktop-specific java api like java sound API. You still can have the core in place and demo should work as expected.
You need to reimplement Microphone class to use android API for sound input.
For more details see the discussion about that:
https://sourceforge.net/p/cmusphinx/mailman/message/31317160/
So it is some work and it requires coding skills. If you don't have that, use pocketsphinx instead like Opiatefuchs suggests you. It's well documented approach which requires minimum efforts.
I also tried to do some App with Pocketsphinx, not Sphinx4. I think this is really not designed for android, but maybe You could get it work. But for which reason? PocketSphinx is a good designed API for including in Android. I had mad some tutorial on my website for how to get the Pocketsphinx work, I advise to stop thinking about Sphinx4 because it would be a heavy coding thing to get it work. PocketSpinx has all You need...look at my Tutorial, this is a better way:
https://sites.google.com/site/opiatefuchs/home/pocketsphinxandroiddemo
Until now I stopped working on it, but when I got time, I will start to include Pocketsphix into an apk. But this tut only shows how to get the example demo work and set up Your runtime environment to work with Pocketsphinx.

Streaming audio from online radio

I've had a break from programming from a while and slowly but surely I'm coming back into it. I've been looking for a way to stream (and play) audio from an online radiostation (such as FearFM). I've been looking for duplicates and similar questions on Stackoverflow but didn't really found something usefull. I've also looked at Google, but it gives me the impression that the audio support at java is a bit a dark space.
Could anyone point me a direction on how to approach this? Libraries, examples, descriptions.. everything would be appreciated :)
Thanks in advance,
wvd
If you want to work with media in a Java GUI you could check if JavaFX suppports what you need:
http://docs.oracle.com/javafx/2.0/api/javafx/scene/media/package-summary.html#package_description
im just looking for the same as you, i found some usefull stuff in the JMF api, JMF Framework. in case that you made it already please share code, im looking for that too, send me a PM.

which is better? JMF or VLCJ. especially for streaming youtube videos

I am an average java developer and i am trying to come up with a browser that is developed entirely in java. I want that my browser must be able to play youtube videos, and for that i was planning to use JMF.
Here are my questions:
1) can JMF be used to stream and play videos from links like youtube. If yes, can Some one please point to a demo link(a basic one will do, rest i will develop)
2) If that is possible, should we use JMF or VLCJ? If you recommend VLCJ, where can i find "libvlc"? I had a hard time looking for it.
Thanks to everyone for their help in advance
JMF seems to be abandoned, so VLCJ is a better choice
you can find libvlc.dll here . Pick the biggest. Or just install VLC player.
JMF is quite obsolete right now. It's so old that its player won't open any of the video files used nowadays and if you're trying to capture webcam video you won't be able to detect your camera if you're running on Windows 7.
I heard Xuggler is fine but I really couldn't get it to work after trying hard for a few days so I would recommend VLCJ, which works great and its really easy to set up.
The libraries used in VLCJ are included in VideoLAN's folders when installing VLC. Just install VLC's last version and go to C:/Program Files/VideoLAN/VLC/ and there you'll find both libvlc.dll and libvlccore.dll
VLCj will play Youtube videos easily, JMF won't and is long dead - I wouldn't touch it for any new projects personally. If you're going down the VLCj route though you'll want to look at out of process players, you can't reliably include multiple players in process.
You cant do youtube with JMF. Also check out Xuggler

How to get video and audio streams from web cameras with Java?

How can I get video and audio streams from web cameras with Java (in a cross-platform way)?
For example, we have a computer with 3-4 USB web cameras; we want to get their streams and make them visible in the user interface. How can we perform such a thing? I need code for a simple app which would find ALL cameras on the computer and let us select camera to wach. Can any one, please share such one?
With java media framework JMF or FMJ
Here is an example with JVM
I see your comment about the solution needing to be "pure" java, but this is really "nearly" impossible. You will need to use some sort of native library for accessing the devices, with that being stated; I suggest that you look at Xuggler as your solution. Xuggler supports Windows, Mac, and Linux and they also offer example code for handling audio and video. Lastly the library is FREE.
Webcam capture example: http://xuggle.googlecode.com/svn/trunk/java/xuggle-xuggler/src/com/xuggle/xuggler/demos/DisplayWebcamVideo.java
While Xuggle does not have an example of microphone capture, you can find samples on the mailing list or you could use code written by the packet-mulitbroadcaster project found here: https://code.google.com/p/packet-multibroadcaster/
You can try my solution. It uses OpenCV to capture the image and jetty server to transmit it via WebSocket. The example has three classes and it will be easy to understand.
Now I can send only video, but I'm working on audio aswell.
I'd use flex. It can be relatively easily integrated with java backend.
UPD:
Pure Java needed
Then you should consider JavaFX solutions. I'm not a big expert in javafx, I've only written some basic test applications, but I'm sure it's a modern way of solving described problem with pure java.

Video playback in Java ( JMF, Fobs4JMF, Xuggler, FMJ )

I need simple video playback in Java.
Here are my requirements:
PRODUCTION QUALITY
Open and decode video files whose video and audio codecs can be chosen by me. I.E I can pick well behaving codecs.
Be able to play, pause, seekToFrame OR seekToTime and stop playback. Essentially I wish to be able to play segments of a single video file in a non linear fashion. For example I may want to play the segment 20.3sec to 25.6sec, pause for 10 seconds and then play the segment 340.3sec to 350.5sec, etc.
During playback, video and audio must be in sync.
The video must be displayed in a Swing JComponent.
Must be able to use in a commercial product without having to be open source (I.E. LGPL or Comercial is good)
My research has led me to the following solutions:
Use Java Media Framework + Fobs4JMF
http://fobs.sourceforge.net/f4jmf_first.html
I have implemented a quick prototype and this seems to do what I need. I can play a segment of video using:
player.setStopTime(new Time(end));
player.setMediaTime(new Time(start));
player.start();
While Fobs4JMF seems to work, I feel the quality of the code is poor and the project is no longer active. Does anyone know of any products which use Fobs4JMF?
Write a Flash application which plays a video and use JFlashPlayer to bring it into my Java Swing application
Unlike Java, Flash is brilliant at playing video. I could write a small Flash application with the methods:
open(String videoFile),
play(),
pause(),
seek(int duration),
stop()
Then bring it into Java using JFlashPlayer which can call Flash functions from Java.
What I like about this solution is that video playback in Flash should be rock solid. Has anyone used JFlashPlayer to play video in Java?
Write a simple media player on top of Xuggler
Xuggler is an FFMpeg wrapper for Java which seems to be a quite active and high quality project. However, implementing the simple video playback described in the requirements is not trivial (Seeking in particular) but some of the work has been done in the MediaTools MediaViewer which would be the base upon which to build from.
Use FMJ
I have tried to get FMJ to work but have had no sucess so far.
I would appreciate your opinions on my problem.
Can a brother get a shout out for Xuggler?
In my mind, VLCJ is the way forward for this type of thing. I love Xuggler for encoding / transcoding work, but unfortunately it's just so complicated to do simple playback and solve all the sync issues and suchlike - and it does very much feel like reinventing the wheel doing so.
The only thing with VLCJ is that to get it to work reliably with multiple players I've had to resort to out of process players. The framework wasn't the simplest thing in the world to get in place, but when it's there it works beautifully. I'm currently running 3 out of process players in my app side by side with no problems whatsoever.
The other caveat is that the embedded media player won't work with a swing component, just a heavyweight canvas - but that hasn't proven a problem for me at all. If it does, then you can use the direct media player to get a bufferedimage and display that on whatever you choose, but it will eat into your CPU a bit more (though no more than other players that take this approach.)
JavaFX has a number of working video and audio codecs builtin. It's likely to be the solution with the broadest support at the moment.
I've been using jffmpeg in the same way you use FOBS, it works pretty well, although I haven't compared them.
I would also love to see an easy way to interface with native codecs the way that JavaFX does, but there doesn't seem to be real integration between JavaFX and Java.
There has also been some work trying to get the VLC library libvlc into java. I haven't tried it yet and would be interested to hear back from anyone who has.
haven't tried Xuggler (which i'm interested in) but I'm having a good time with VLCJ. The drawback I find in it is only that you have to have VLC installed prior to your application.
I'd recommend using MPV. You can use it in combination with JavaFX quite easily, see this example.
In short, you use a little JNA magic to use the MPV native libaries directly, and then let the video display on a JavaFX stage. If you use a child stage, you can even overlay JavaFX controls on top of the video (with full transparancy support).
VLC (with VLCJ) can be used in a similar fashion, but I find that the MPV solution performs better (faster seek and start times).

Categories

Resources