shoes / shoes4

Shoes 4 : the next version of Shoes
Other
1.59k stars 194 forks source link

Video element #113

Open davorb opened 12 years ago

davorb commented 12 years ago

Hey guys! Sorry for the lack of updates. My internet has been down and the ISP has been really slow with sending a tech to fix the fiber optic connection (he's not coming until tomorrow, thank god for people still using WEP).

In any case, I've had a look at the video element. Since there is no native swt-solution for this, I've had to look at third party options.

The "original" shoes used VideoLAN and ffmpeg and was because of that able to support a ton of video formats. The manual specifically states that QuickTime, FLV, DivX, Xvid and "various others" are supported, so I've been trying to find a good library that will support all of those and that is relatively portable.

Vlcj would be the easiest to implement. Unfortunately it requirers VLC to be installed, so I think that we can rule Vlcj out.

I've also had a look at Xuggler, which uses the FFmpeg library to achieve the same thing. From what I've read doing simple playback and solving sync issues is a bit of a pain with Xuggler. To top that off it forces the end user will have to install a DLL/shared library -- FFmpeg. While this is sub-optimal, from my understanding the old Shoes required that as well.

Fobs4JMF was another option that I looked at. It was easy to write a player with it, but it also required shared libraries/DLLs to be installed. Also, the project seems to be abandoned. :-(

The Java Media Framework (JMF) hasn't released a new version in a decade.

There's also a thing called FMJ (http://fmj-sf.net/), but I haven't had a good look at that yet.

Personally, I think that Xuggler is most likely the best option. What are your thoughts on this?

PragTob commented 12 years ago

Hi,

thanks for looking at this! I think supporting video without requiring libraries to be installed is almost impossible. So a library dependency is ok to my mind.

However I personally don't feel like video is really that important. If we release without it, it wouldn't be too bad. How many shoes apps actually ever used this? Would be cool to have either way :-)

Cheers, Tobi

jrgifford commented 12 years ago

How many shoes apps actually ever used this? Would be cool to have either way :-)

I'd record stuff for Hacketty, the video element has some potential there. Since its the only big shoes app… ok, I see your point.

I guess it comes down to "Is it worth the trouble?" - and I think the answer is probably yes.

PragTob commented 12 years ago

I'd say that it boils down to "Is it worth the trouble now?" :-)

jrgifford commented 12 years ago

I think that the answer is clear then - not now. We need to get shoes4 up-to-snuff with shoes3 (with minor improvements in the DSL of course!) first. :)

steveklabnik commented 12 years ago

This is exactly how I feel about it; It'd be nice, but it's sort of an extra feature. I'd rather see work done elsewhere, though of course, if someone feels particularly passionate about video, have at it!

PragTob commented 11 years ago

Also please do not forget, that the video element also plays music files... however maybe a new method for music files would be a good enhancement?

ghost commented 11 years ago

I would love to work on a gem that wraps around FMJ library( http://fmj-sf.net/index.php ) and can help with video element in shoes. I am definitely not an expert on this so would love some inputs on what should be considered to ensure SWT compatibility. Also are there any suggested gem for API inspiration?

davorb commented 11 years ago

I think that I wrote up a list of the different alternatives at the time and issues that would arise from trying to implement this about a year ago. See if you can find it and tell me if you can't and I'll find it for you once I get home.

Davor Babic davor@davor.se (from mobile) On 4 Jul 2013 13:58, "Nitish Upreti" notifications@github.com wrote:

I would love to work on a gem that wraps around FMJ library( http://fmj-sf.net/index.php ) and can help with video element in shoes. I am definitely not an expert on this so would love some inputs on what should be considered to ensure SWT compatibility. Also are there any suggested gem for API inspiration?

— Reply to this email directly or view it on GitHubhttps://github.com/shoes/shoes4/issues/113#issuecomment-20473429 .

ghost commented 11 years ago

@davorb Can you please point me to the post of yours?

skade commented 11 years ago

Any reason not to use JavaFX? It has a MediaPlayer and can be used in SWT through a special canvas.

http://docs.oracle.com/javafx/2/api/javafx/scene/media/MediaPlayer.html

I'd be interested in video for my AR.Drone operation app. Currently, I am using ffmpegs image2pipe mode to show a series of stills, which is suboptimal.

ghost commented 11 years ago

I am currently trying to make it work with VLCJ. It needs vlc to be installed on the machine but it is the only java media library which is not obsolete.

skade commented 11 years ago

To be fair, javafx is not obsolete and has a release plan until at least java 8 and interop is documented:

http://docs.oracle.com/javafx/2/swt_interoperability/jfxpub-swt_interoperability.htm

Still, VLCJ will probably enable more options.

davorb commented 9 years ago

I feel like this feature will most likely be cut. Perhaps we should close this issue?

PragTob commented 9 years ago

Unfortunately you are right, I want to keep it open (on our "when we are ready we might do this" milestone) so we can refer back to it :)