Theora Codec Ported to Java
fons writes "These guys have ported the Theora codec to Java. This means that ANY Java-capable browser can now be used to watch video streams on the net (clients don't have to download a player!). You can watch a demo showing some boring guys sitting in the office. At least the music is ok :) On their site you can find a link to an interesting interview with the
boss, and it looks like more cool stuff is coming soon."
Well, unfortunately, Java was removed from Windows. So people can't use this with an out-of-the-box Windows installation. They have to manually go and download and install the Sun JVM. Not something the average home user knows how to do.
Thus it still seems that to reach the largest market, providing streaming video in WMV and QuickTime (and possibly Real) formats would be the best solution.
This would have been a great development five years ago, though.
That is just an API that allows you to access and control a native QuickTime installation through Java. It's not a QuickTime player written in Java. Quite different.
You can see an mpeg4 video demo here. The in-page JavaScripting seems broken, but the video and audio is good.
This site (playerless-streaming.org), reviews all fo the different options for this sort of technology.
Because Sun's java VM is faster than GCJ compiled native code in most cases.
Um, was there a stable open source video codec before Theora? IIRC, XVid didn't stabilize until fairly recently. Plus aren't there worries about patents and XVid?
Anyway, I suspect the newness of an unencumbered open source codec has a lot to do with why this wasn't done before.
P.S. OW! Somebody turned up the volume on the video feed! (During Aerosmith's/Run DMC's Walk This Way) I'm shocked the feed is still up. (Watching on win2k, Firefox 0.8 (yeah, need to update) w/ Sun Java 1.4.2_04.)
It's free software, you can get the C or C++ source code right from their website.
http://www.theora.org/
Just by chance, did you change your USER_AGENT string somehow ? If it is set to MSIE or something else than Mozilla/Gecko, Java will crash. This is a know bug of SUNs JDK :((
Really? A url would be nice dude - not that I don't trust you but it kinda seems to defeat the point a bit - as well as the story - surely this isn't just Quicktime and IS actually Theora?
Seems to work pretty well on OS X 10.3.5 and Safari. This is a good idea and could really help Theora gain acceptance.
Makes me curious - at this point, apparently, what Theora most needs is optimization of the code to make it work faster.
How optimized is this Java port of the codec, and will it be possible to compile it to 'native' code using GCJ for maximum performance?
Most of the time, Java code is Just-in-Time (JIT) compiled. Even the old MS Java Virtual Machine that comes with IE will JIT compile Java bytecode.
That means the Java bytecode is compiled on-the-fly. You generally end up running native code.
The latest Sun JVMs (and it's been this way for quite a while) will interpret code that doesn't get called often, but will aggressively compile code that gets called a lot. The theory is that the end result can perform better than Ahead-of-Time (AOT) compiled code.
In a nutshell, pre-compiling doesn't offer any performance advantages.
Seems to load quick but it uses atleast 50% of processing power of my Athlon XP 2200. Most DIVX, WMV, MPEG files use maybe 15% processing power while showing a video.
So it performance stills lacks, but i am still impressed that class and decoder load that quick even under slashdot load....
Make sure the java plugin is a symlink, NOT an actual file. Whenever I have the java plugin as a file (i.e. I use cp and instead of copying the symlink, it translates the symlink and puts the actual file in there), every java applet in firefox will crash firefox. I have to recreate the symlink (or use the cp switch so it doesn't translate the symlink, I forget what the switch is). Try it out. I'm on mandrake 10 and on my system the location to symlink to is: /usr/java/j2re1.4.2_04/plugin/i386/ns610-gcc32/lib javaplugin_oji.so
so, just use ln -s to do your work for ya, hopefully you can find libjavaplugin_oji.so :)
On the other hand, I bet that most of those other codecs you have on your machine are not straigth C/C++, but have inner loops optimized in assembly, using MMX, SSE and/or 3DNow instructions to their full extent. After all, video codecs are the main purpose why those special instructions were developed.
we've put up another mirror at http://194.78.112.13:8080/cortado/index.html The main site is pulling about 55Mbit/sec and is saturating at 2403 peak clients, it's still alive and kicking though :) enjoy! the fluendo team.
Theora's bitstream is frozen (meaning its not going to change). The reference Theora library on their site is alpha. As this java version is an implementation which in no way requires the theora c library, you cannot say whether or not the java version is of alpha quality.
Occam's razor is the blind faith in the natural selection of least resistance and in universal oversimplification. -- EF
IIRC JMF uses Xv if you have the performance pack installed. I don't think it's included in the JRE, though, which is a pain.
No really, QuickTime for Java is just a JNI wrapper around regular QuickTime. Notice how QT4J is only for Mac and Windows. JMF can read some QuickTime files, though.
Yes.
Who cares about Xvid? Really now.
Take a look at ffmpeg/libavcodec, lots and lots of very fast, very high quality, very stable codecs for encoding/decoding. All lgpl'd.
I believe MPEG-1 is completely unencumbered, due to patents expiring, and has been for quite some time.
Other than that, there's always MJPEG, even if it's not terribly effecient (every frame is a keyframe).
And, more significantly, the VP3 codec was unencumbered as of Sept 2001, which means anyone could have implimented it anytime in the past 3 years. Yet, nobody did.
As a matter of fact, I've been trying to find any programs at all, that could encode to VP3 on Linux/BSD. Unfortunately, none exist, and encoding to VP3 needs to be done on Windows/Mac. Playback has been easy, but nobody bothered to work on encoding.
It seems strange, since AVIFILE does everything via DLLs, you'd think they would have put some real effort into getting it working. It would have been terribly slow, but I could live with that. FFMPEG recently got a native version VP3 in it's source, but it's so very early that it doesn't even properly decode VP3, let alone encode well.
It's a sad situation, really, because VP3 is not only 100% free, but it is a very good codec, that doesn't suffer much from the very typical digital video artifacts, like blockiness, aliasing, etc.
Why do you feel the need to update? I'm using Firebird 0.6.1, and I don't see any problem with that. Actually, I would upgrade if newer version were faster and more stable, but the opposite is true.
Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
>the VP3 codec was unencumbered as of Sept 2001, which means anyone could have implimented it anytime in the past 3 years.
They did, and they called it Ogg Theora.
UT 2004 and Doom 3 both use OGG Vorbis to do their music. Well between these two engines, you are talking a lot of games. A very large number of games start by licensing either the current Epic or iD engine since they are so solid.
These two alone will provide a big boost for Vorbis in the gaming world.
Yes, the applet does use JOrbis.
gcj does not give you maximum performance. My QR-decomposition code runs a lot faster on IBM and Sun virtual machines than compiled with gcj with maximum optimisation flags.
Java applets have been around for some time now. The number of remote system exploits has been *extremely* low in the last few years. (Not that the total number of exploits has been very high.) In fact the vast majority of Java expolits through an applet has been social engineering (a Java window popped up that looked like a system dialog) rather than technical exploitation.
Basically in order to install spyware with Java, you have to set up a web page (accountability), get people to come to your page, find a bug in a particular browser/VM combination that allows remote access to the file system AND allows native code to be executed.
As it stands today, I have never heard of an actual case of a web site installing spyware on a system via a Java applet. Of course this isn't to say that it could never happen. Anything could happen. But the fact that I have never yet heard of it happening in the ten years that Java has been released versus the number of spyware installs via ActiveX speaks volumes to me.
- I don't need to go outside, my CRT tan'll do me just fine.
I ran top, and all my CPU usage was XFree86 and kernel. That tells me that the bottleneck is most likely ALSA/X11 calls on my system. My CPU usage hits around 50% on an Athlon XP 2100+. I'm running JDK 1.5.0.
I bet if I used OSS, it might make a difference. It may even be sending the sound through the X11 Server for all I know.
I'm satisfied since my Java was using 10%. Java either does, or will, use OpenGL at some point (ldd doesn't seem to think so, but Java loads all platform libraries dynamically except for a few basics, and X11 if it is being used as a plugin). Also, I don't know if the codec even bothers to support Java2D. It may be that I get 50% CPU utilization because it keeps sending X11 calls to the X server using X11 Accel. that is really old to be compatible with remote X11 servers.
I hope this sheds a little more light into what's going on, and maybe someone that knows a bit more about Java2D and Linux/ALSA/X11 workings can make some more educated guess that I can.
I use the NVIDIA OpenGL under Debian with the latest Debs for everything in unstable (I even have it working with Neverwinter, and get more than adequate FPS) 2.7.8 Kernel, NVIDIA's AGP driver.
Karma Clown
The Theora Java thing is an implementation of Theora in Java, the Quicktime Java thing is simply a wrapper round the standard Quicktime stuff.
I think you were at cross-purposes there.
404 Not Found: No such file or resource as '.sig'