I'm putting together a HTML5 based webcast client, but ran into a catch with the webcam streaming. I currently use icecast to stream the video to the clients, but this has required a different source client for each OS plus an install for each computer.
I have been looking into using a Java Applet until the StreamAPI supports webcam to server, and have seen OpenCV recommended for aquiring the video. Now I'm trying to find a library to pass the video to Icecast. Is there such a thing avalible?
I'm also willing to use other applet designs (i.e. flash) if that would be better.
Related
I had a small JavaFX application to play some GoPro videos on a windows / linux client. In the past I had using a GoPro 4. I've downloaded the video to the client and play it from the local storage. Like this:
File file = new File("AnyVideo.MP4");
Media m = new Media(file.toURI().toString());
MediaPlayer mp = new MediaPlayer(m);
mp.setAutoPlay(true);
mediaView.setMediaPlayer(mp);
I'll try to switch to the new GoPro 6 now. But it doesn't worked as expected.
The problem is probably that the JavaFX MediaPlayer did not support the codec from the new GoPro 6.
GoPro 4: h264 AVC video codec
GoPro 6: h265 HEVC video codec
The JavaFX MediaPlayer supports only the h264 codec.
Did anyone know a way how I can play a h265 HEVC video with my JavaFX application. In the best case a solution wich can play the video immediatly from the camera without download the video first to the client. The GoPro has a smal Media Server to get the video over HTTP. as example:
http://10.5.5.9:8080/videos/DCIM/100/GPR10973.MP4
Native JavaFX Solution
Perhaps this is a duplicate or at least related to:
Adding other video codecs / DVD support to JavaFX 2.2.
See my answer to that question for links to related feature requests in the JavaFX bug tracker system.
Solutions using non-JavaFX tech from JavaFX
There are other solutions than those discussed in answers to that question which may work for you. Especially if your primary concern is just getting some kind of playback, even if it doesn't have deep integration with the JavaFX media system.
For instance, other approaches than native JavaFX playback could be:
Using VLCJ with some kind of Swing integration (such as a SwingNode, though that may or may not work).
Rendering the VLCJ video into a JavaFX ImageView or Canvas.
See related: Playing Video in Java FX using vlcj api.
Which links to the following project: https://github.com/caprica/vlcj-javafx.
Launch a native video player if you don't need the video embedded.
Perhaps Desktop.open() or the Process API could do this.
Call ffmpeg to convert h265 to h264.
I don't know much about this, but a quick google of the topic shows up references to the xuggle project.
Current status of the xuggler project is:
Xuggler is on hiatus as no one is actively developing it anymore. Sorry. That said, you can always find the source code and start hacking yourself. Good luck!
So I wish you good luck with that ;-)
Launching the native browser through a HostServices.showDocument() call to display the video.
Use a third party browsing component that can be integrated into JavaFX and includes support for the media type you want to play back, for example JxBrowser:
H.265 support in jxbrowser
Of the options outlined above, personally, I would recommend using HostServices to play the video in the native browser if that kind of solution will possibly work for you.
Going into detail on various options is probably out of scope for StackOverflow (even the above list starts looking like a sometimes frowned upon library recommendation).
I have the following problem: in my application I am supposed to connect to a VNC server, grab the icoming images and both save them as a video file (this part works) and publish as a RTMP stream to Red5 server.
Most of the video encoding part is based on Xuggler's screen recording tutorial app ( http://wiki.xuggle.com/MediaTool_Introduction#How_To_Take_Snapshots_Of_Your_Desktop ).
However, being a beginner in Java I can't seem to get the live streaming part to work. I know I am supposed to use IContainer, but even after reading this: How to transmit live video from within a Java application? and several other posts I don't really know how to adapt that to my application. Any help would be greatly appreciated, thanks!
I'm working on a web project, where a user can share his screen and the output of his sound card with other users. I've come pretty far with the Adobe LCCS service (http://www.adobe.com/devnet/flashplatform/services/collaboration.html), but the screen sharing isn't stable enough to transmit a running video from the user's computer - it stops every 2 seconds.
It seems the only other way is to use a Java Applet. There are several libraries to share the screen. I'm looking for a way to capture the screen contents and stream it via RTMP to a server.
I have found a Java Applet, which captures screen shots of a defined area in a certain interval, encodes it into the ScreenVideo codec and streams it to an RTMP capable server: http://code.google.com/p/red5-screenshare/
We are working on an online mobile video app.
The videos we want to play on mobile phones are being generated by a server, as there can be dynamic content in the server (based on user input).
Now for iPhone we would like to play the video in the best possible resolution based on the connection speed at the time of downloading the movie. This can be done using reference movies. However, because our videos are being generated on the fly, we need to generate this reference movie on the fly as well.
Is there a way to generate reference movies on the fly on a Linux server using some command line tool, PHP or Java? Or on a DOS server maybe?
Any help will be much appreciated.
Take a look at Apple's HTTP live streaming protocol.
https://developer.apple.com/streaming/
I would like to stream my desktop screen (or just one application), via Flash player, to the internet.
I have wowze media player to multicast it but I have to create a stream to give to wowze.
Does anybody have have any idea how to start what would be the best way of doing this?
http://1.pe-web.ro/dev/flashPlatform/flashBuilder/flexJavaApplet/flexPrintScreen/
You could start from here. This is an app that uses Java to capture the screen and sends the picture to flash
Or you could use a RED5 server and TightVNC with a customized version of the Java client that will publish frames as a stream.
Jing is a cross-platform (Windows and Mac) option. Captures the screen, plus audio. Very cool.
I don't know any "out of the box" software use the Flash Player to encode your screen and stream it to Wowza. I do believe that it must be developed from scratch.
But I've been using for a while a Java based desktop encoder that streams to Wowza media server. It is part of the Red5 ecosystem: red5-screenshare
If what you mean by create stream is to have a virtual camera that captures your desktop screen in a way you can select in your multicatser app then you should check out ScreenCamera. It does exactly that and you can select the frame-rate you want. You can find ScreenCamera here:
http://www.pcwinsoft.com/screencamera/download.asp
http://www.pcwinsoft.com/screencamera/
Hope this helps,
Alex