Hmm, that applet didn’t work here (well, it didn’t play video). Got ‘unknown type: audio/ogg’ on the bottom of the applet.
Rather odd. Worked everywhere I’ve tried it so far. Still, the applet’s a bit moot, as no-one has Java 6 u10 who counts.
Cas
If you’ve got the Git source then it’s probably off the Xiph site. Just know that it started being developed on the Fluendo site and then went via WikiMedia, and the old versions are still up and come first when searching, so I know it’s not always easy to find the up-to-date code.
It’s just names like Git that make open-source seem wankery … that’s bad enough, try telling a bunch of artists the merits of getting familiar with The Gimp while keeping a straight face.
I agree, lack of sound is no good for me either, but for the project I’m using it for GPL licensing isn’t an issue. They had to write very little additional code (3 classes) to get around the GPL parts of Cortado, but I guess it’s the syncing of audio and video that’s going to be “fun”.
Neil
;D I’ve lost a considerable amount of hair over the last 3 weeks trying to make FFPMEG compile, and work with JMF via various routes like FOBS. Nothing works, basically. I despair of open source sometimes. If this thing works I think there’s quite a strong case to bundle it in LWJGL as a utility jar.
Cas
Pogg looks promising. I just emailed the developer asking if he’d like help getting audio to work. An all LGPL-solution would be great.
great !
it seems that I am not alone to only belive that Java 1.1 compilation is good to avoid many problems
from the build.xml :
[quote]target=“1.1” source=“1.3”
[/quote]
just awesome, cant believe that you know what ? I tested it on “my compatibility test computer” wich is :
AMD 1.6 GH
XP PRO
Internet explorer 6
Microsoft JVM 1.1
and ? and ? you know what ??? It RUUUN smoothly.
the video is not suprising but where I am really really surprised is that the audio play verywell too even on the MS JVM, incredible… I love the teams who made this player, this is the Magic of Java 1.1, work just every where …
so so cool
downloaded the source code…
get the src directory and put it in a blank JCreator project, pressed compil and … compil finished without error (only 71 annoying warning…)
Hi,
I am octavi, the developer of Pogg, the LGPL library based on Cortado that Neil mentioned.
I started this project because I needed video for my applets and I think that Cortado is the best option.
Having audio with the video is important but, as some of you point out, there is quite a lot of work to do. I would like to have buffering and seeking implemented as well (before the audio part). I have some other projects and not much free time, but anyone with time and motivation is welcome to help!
Everything would be easier if some parts of Cortado (basically the com.fluendo.jst package) changed to LGPL (or BSD, as brakeen says). I asked the xiph people some time ago but the answer was not conclusive (see http://lists.xiph.org/pipermail/theora-dev/2009-November/004016.html).
I didn’t know about the theora-java that bosun mentioned. I have downloaded it but I couldn’t find how to use the pure Java part. I someone does, let me kwnow.
Octavi
Hi Octavi, it’s especially good to see you join our forums here.
I have an urgent pressing need to get this working in the next 10 days or so - my agenda is to get sound and video out of my ffmpeg2theora encoded OGVs and into ByteBuffers. I’d like to help out in any way I can.
Cas
Well, I don’t need it quite that soon! However, I do need to be doing some stuff with applet video in the next couple of months. My plan was actually to look at marrying Cortado with PulpCore (PulpCoretado anyone?) to build an applet video player that works and also doesn’t look shit!
Marry those two together and I reckon it would be possible to get an experience close to some of the Flash video players. I’m not bothered about the GPL licence if it’s applet based (it’s not like it’s AGPL anyway), however a more liberal licence would be better.
Incidentally, all of the GPL code in Cortado seems to be an old port of GStreamer objects - and GStreamer is LGPL - aargh! Might be worth getting in touch with the GStreamer team rather than Xiph about relicensing - it was done by one of the same developers. Otherwise, I wonder how easy it would be to reimplement the interfaces based on the C code … hmm :-\
@cas JMF? Yuck! The joy of stepping around the weeping entrails of barely breathing Java API’s. When native libraries are an option (and usually is for the stuff I do), I’ve been using the Gstreamer-Java bindings which seem to work pretty well. Depends obviously on having GStreamer installed but this is (allegedly!) cross-platform these days. It also uses JNA which I’m rapidly becoming very fond of.
Hmm… what does the GPL say you have to do if you distribute a .jar file with GPL code in it?
Cas
Open up everything! However, I think applet usage would not count as distribution - difference between GPL and AGPL.
I’m more thinking along the lines of, hack the crap out of Cortado, and distribute the resulting .jar along with my game, so I can play video through it. I’m not bothered about releasing the source of my games (most of the code is already open sourced) but I am bothered with actually having to put any effort into providing the source. But if the GPL only covers the jar file then that’ll be fine because I’ll have it all in sourceforge anyway.
Cas
OK, got you. GPL would mean you’d have to open up the whole application and provide a link to all of the source, LGPL would mean that you’d only have to do that for the Jar itself.
Unfortunately, having had a quick search online, I think my previous point about applets was wrong - they are counted as distributed code.
I suppose I should include the requisite IANAL (and I mean that as an acronym, though it’s occasionally true the other way too! )
In that case I’m going to butcher Cortado so thoroughly unrecognisably no-one else will want to use it. Well not much. I have very narrow requirements (although I expect that those narrow requirements will be of use to 99% of the people in here who want them - “I want to play video into OpenGL and audio into OpenAL”)
They really didn’t quite grasp Java when it came to the GPL did they.
Cas
if you do use any GPL code in your project (and you distribute it) - then all of the code that uses that library must also be GPL.
APLG is basically the same - except it requires you to GPL your code - regardless of the actual distribution.
If the library is LGPL, then only the distributed library - and any changes - needs to be LGPL’ed.
(technically, there are issues with obfuscating LGPL libs too - but thats another issue for another day)
I’ve just had another look through the Cortado code to search through the licence headers. Seems there’s a lot less GPL code in there than I thought, although it’s all a mess. I’d assumed it was licensed package by package but no such luck. Bizarrely, most of the GPL stuff is not actually code - it’s interfaces, abstract classes and the odd data handler - mostly API. All the actual meat of running the audio and video pipelines is LGPL. There’s even weird things like Clock being an abstract GPL class, but being implemented by an LGPL subclass (AudioSink)! OK, so we extrapolate the interface from the concrete class and replace the GPL code - what a waste of time!
@cas I must be in the 1% then, as I don’t want to use it with OpenGL. However, either way will involve getting the raw data out into a buffer in some usable form.
I find it particularly irksome when confronted by massively complex APIs like this with absolutely no documentation, not even in the source code.
Then again I’m guilty of the same but I never intend for anyone else to use my code as such.
Cas
I know what you mean - both the irksome-ness and being guilty of exactly the same thing, though I think even I manage slightly better than this!
Anyway, try having a look at the GStreamer documentation - it should get you around the terminology and architecture fairly well. I kind of understand the architecture of Cortado having worked with GStreamer a lot recently.