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."
Cb..
Now I can watch porn everywhere!
11 1101 1011111 0100 000 110 1011111 0101 10 01 1011111 101 1 011 1011111 0 1111 11 111 1011111 101
If this isn't just a joke, with a fake Java player, the quality is really quite good. Best video feed of a camera pointed at someeone's monitor showing a WinAmp clone that I've ever seen, anyways.
Has anyone tried to do this with QuickTime?
Was linking to a video feed from slashdot's front page a mistake?
Given all these reports that Java code can be made almost as quick as c/c++ (especially when number crunching), if not faster, why hasn't this happened before?
;)
Is it just that bit hackers are more comfortable in c?
I would there would be a big benefit to having decoders/endcoders in java. On that note it would be nice if there were one defacto decoder/encode instead of ffmpg, jpegtools, transcode etc.
Sorry for the ramblings, I guess everyone likes to re-invent the wheel
Anyone getting audio on Windows XP? Good video quality, but not hearing anything.
-- taking over the world, we are.
This guy has been working on an mpeg-4 and mpeg-1 Java player for several years and has said that it will be released within the month. The demos on thsi site, although basic, look promising. His Mpeg-4 video can apparently go full screen given enough cpu. The good bit? it's going open source.
For Real and Apple to reimplement and promote their own codecs the same way. Well, if we really want it - because Theora really does well.
The demo on Firefox w/ XP professional (i'm at work) keylocked the machine (eg, press caps lock, no light) and it appeared completely frozen until a couple three-finger-salutes woke the machine up enough to use the Back button to get out of the page.
I didn't hear any audio, but the video quality was wonderful. I'd love to dump Real et al. for this sort of thing--streaming media servers just tend to suck (anybody who's installed RealServer on a unix box will likely agree with me).
Moreover, if you have any sort of secure web application that has streaming video, you can just stick this in rather than trying to wrap the same security concept around two different application servers. That alone is Very Cool.
"[T]he single essential element on which all discoveries will be dependent is human freedom." -- Barry Goldwater
I've used the technology; it first debuted three years ago. I can say that it is *very* good: fast, light and easy to encode for. Presuming that the software has avanced in since I last saw it, this should proove a fantasic bit of kit.
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?
Hacker Public Radio is our Friend
BTW, I did not realize that mine was the usual FP!!
Cb..
For some reason it seems to load faster than realplayer, quicktime or windows media player.
.Net apps like RSS Bandit! Its actually a real option for anyone wanting to stream video.
/.
I am using Java 5 RC which for me GUI program feel faster than
Also, please note I do feel dirty calling it Java 5...
And nice work putting a video stream on the front page! Thats nice and considerate
You can see an mpeg4 video demo here. The in-page JavaScripting seems broken, but the video and audio is good.
Don't discount the business value of these open formats - for a hardware or tools vendor it is one less license to pay.
Clients still have to download the player, it's just that the player is now in a form which is downloaded with less effort.
[
This site (playerless-streaming.org), reviews all fo the different options for this sort of technology.
I'm not sure, but I think that the author of the site that this is on is the head tech honcho at Airlock, a company who specialise in this sort of thing.
I used to work at that place during the dot com explosion, and they had some pretty neat Java-based video stuff that ran very nicely even on modems. They even ended up making the broadcast software Java-based so that they didn't need to install software anywhere. Of course, the downturn took it's toll and I think it's run out of some person's house now or something.
There is a difference between "insightful" and "inciteful" other than spelling.
It seems to crash Firefox every time I try to play this. Firefox 0.9.3, Debian Sarge (testing). about:plugins shows Java(TM) Plug-in 1.4.2_04-b05 (from Sun).
It's really frustrating that Java is so touchy on Linux, and so poorly supported on Debian. I would like to see this demo! I know this is OT, but does anybody have any hints on how I might make Firefox play this without crashing?
Crap reviews
Since there's a port to Java, is there anybody willing to port to .NET or Mono?
It's free software, you can get the C or C++ source code right from their website.
http://www.theora.org/
So you think with Flash you will be able to develop new codecs like this without updating flash plugin in your computer? You are confusing things badly dude..
the people using activex are either:
1. microsoft
2. retarded
3. all of the above
the people using flash are either:
1. 14 years old
2. incredibly annoying
3. advertisers
I just tried it in both Firefox and IE. It looks great (sounds good too) and it loads really quickly! I hope sites start switching to this rather than using real media or WMV streams for windows media player.
Great for those with a "Flash-Capable" browser - not so great for those of us who run our x86-64 Linux boxen in - surprise, surprice - 64bit mode. (No, I refuse to install a 32bit mozilla just to get Flash - my other plugins (including java) works in 64bit).
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.
That stat from Macromedia is way off, the wording is quite twisted. What it really means is 98% of users can view flash if they jump through the hoops. NOT that they already have the ability, and certainly not MX.
I develop a lot of flash applications and theres no where close to 98% saturation of Flast let alone MX which does video.
Think more like 70% for MX and 80% for Flash5+
Pretty soon websites will have two options. 1 without video and 1 with. People with highspeeds will have a whole new world of websites to view. I'm sure there will be a lot of websites with video greaters, like Walmart.
Free Ipods it's for real check out Wired then go to: http://www.freeiPods.com/default.aspx?referer=8533
Thanks! :)
of cpu/cpu usage do you have? It chokes pretty badly on my B/W G3-400.
Comment removed based on user account deletion
Others were able to access the source and port it. Beautiful.
I don't know the meaning of the word 'don't' - J
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 :)
soo.. you've been able to watch theora streams with some player that has the decoder written in flash? yeaah.. sure.
I wish this would have been around and in use around the spaceshipone flight, wouldn't have had to jump around through hoops getting new mediaplayer and new new realplayers.. could just have pointed at some page and it would have *just worked*, no messing around with players or codecs.
besides, this isn't a java 'feature', a feature of java is that you can actually write something like this - just try to get even near in actionscript!
world was created 5 seconds before this post as it is.
The guys at BannedMusic.org are using a similar system to make it simple to use BitTorrent. This combination of technologies could be the kick in the butt that Open Source needs to reach the mainstream.
.torrent files to begin downloading. And they'll be able to use other sites that require BitTorrent.
A quote:
The best solution seemed to be a simple modification of BitTorrent: an installer that runs BitTorrent and begins download of an included torrent file. Windows users can click on the "Easy Download" button on an album's download page to get a 3mb executable. When they launch this executable it installs BitTorrent (which happens very quickly in the background) and immediately begins downloading the album they were seeking. After they've used the "easy download" once, they can simply click on the
What if Digg added local news and a Slashdot inspired comment karma system? ---
http://houndwire.com
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!)
GEO Emblaze came out in '98. I remember specifically looking for subscription sites that offered Emblaze streams so I didn't have to boot out of Linux.
I ran this for a couple of minutes and then got java.lang.OutOfMemoryError in my java console. I've got 512mb so I doubt I really ran out of ram, although I know the default for a Java VM is not to use the whole memory.
.java:146)
queues: [id: 0 0 4] [id: 1 0 20]
queues: [id: 0 0 4] [id: 1 0 20]
queues: [id: 0 0 4] [id: 1 0 20]
java.lang.OutOfMemoryError
java.security.Acc essControlException: access denied (java.lang.RuntimePermission modifyThread)
at java.security.AccessControlContext.checkPermission (AccessControlContext.java:270)
at java.security.AccessController.checkPermission(Acc essController.java:401)
at java.lang.SecurityManager.checkPermission(Security Manager.java:542)
at sun.applet.AppletSecurity.checkAccess(AppletSecuri ty.java:139)
at java.lang.Thread.checkAccess(Thread.java:1131)
at java.lang.Thread.interrupt(Thread.java:738)
at com.fluendo.player.Cortado.stop(Cortado.java:215)
at sun.applet.AppletPanel.run(AppletPanel.java:389)
at java.lang.Thread.run(Thread.java:536)
java.lang.I nterruptedException
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:426)
at com.fluendo.player.QueueManager.dequeue(QueueManag er.java:82)
at com.fluendo.player.VideoConsumer.run(VideoConsumer
at java.lang.Thread.run(Thread.java:536)
java.lang.I nterruptedException
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:426)
at com.fluendo.player.QueueManager.dequeue(QueueManag er.java:82)
at com.fluendo.player.AudioConsumer$MyIS.read(AudioCo nsumer.java:88)
at java.io.InputStream.read(InputStream.java:171)
at com.fluendo.player.AudioConsumer$MyIS.read(AudioCo nsumer.java:149)
at java.io.BufferedInputStream.read1(BufferedInputStr eam.java:220)
at java.io.BufferedInputStream.read(BufferedInputStre am.java:277)
at java.io.DataInputStream.read(DataInputStream.java: 167)
at java.io.FilterInputStream.read(FilterInputStream.j ava:111)
at java.io.PushbackInputStream.read(PushbackInputStre am.java:161)
at javax.sound.sampled.AudioInputStream.read(AudioInp utStream.java:288)
at java.io.FilterInputStream.read(FilterInputStream.j ava:111)
at java.io.PushbackInputStream.read(PushbackInputStre am.java:161)
at javax.sound.sampled.AudioInputStream.read(AudioInp utStream.java:288)
at com.sun.media.sound.UlawCodec$UlawCodecStream.read (UlawCodec.java:560)
at com.sun.media.sound.UlawCodec$UlawCodecStream.read (UlawCodec.java:489)
at sun.audio.AudioDevice$DataPusher.run(AudioDevice.j ava:506)
at java.lang.Thread.run(Thread.java:536)
java.lang.N ullPointerException
at com.fluendo.player.AudioConsumer$MyIS.read(AudioCo nsumer.java:91)
at java.io.InputStream.read(InputStream.java:171)
at com.fluendo.player.AudioConsumer$MyIS.read(AudioCo nsumer.java:149)
at java.io.BufferedInputStream.read1(BufferedInputStr eam.java:220)
at java.io.BufferedInputStream.read(BufferedInputStre am.java:277)
at java.io.DataInputStream.read(DataInputStream.java: 167)
at java.io.FilterInputStream.read(FilterInputStream.j ava:111)
at java.io.PushbackInputStream.read(PushbackInputStre am.java:161)
at javax.sound.sample
I wish I could think of something interesting to say, but I'm just too blown away to say anything. Absolutely amazing.
a plugin... OTHER THAN JAVA!
please don't say you use MS impementation....
Now we only need an ActiveX plugin which will automatically download and install JRE on one's computer, and it will Just Work!
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.
Comment removed based on user account deletion
what is that dude doing to the giant penguin doll... that's just wrong...
and there he went and knocked the camera off its mount. sweet!
MORTAR COMBAT!
Flash has video with a wider range of support browser wise (java disabled...) then java. So thats a viable arguement.
This is way old news about the interview with the CEO over at osnews.com. The Java port was the minor story. The real story was about their work with Theora in streaming projects.
lol..
I love the big cigar the guy is smoking! Be careful not to burn tux!
subject says it all....
Yea, I wrote my OS in action script. It's pretty much the best programming language out there. And I mastered it in like a week, it's pretty awesome. My middle school teacher is prolly the only person who knows more, but he is the one that taught me.
Reinvented really.
4 /0 9/10/2053245&tid=108&tid=97&tid=95&tid =1
The Livecam server we developed in 1995 and dominated the adult industry already did all this and supported more viewers with better quality.
We supported Motion JPEG or H.236 in 1999 with GSM audio, with 20Kbps to 70 Kbps streams.
I just love it when someone else come out with it all over again and everyone thinks it's new.
----Original Message-----
From: James S
Sent: Friday, September 10, 2004 5:18 PM
To: sokol@videotechnology.com
Cc: Jesse Monroy
Subject: Hey These guys just invented the Java player we created in 1999
Check this out. It's our player.
http://developers.slashdot.org/article.pl?sid=0
James
I am always doing that which I can not do, in order that I may learn how to do it. - Pablo Picasso
Yeh I was still hearing the sound too, I had to close all Java applications and Firefox to get it too stop. By any chance are you using Java 5 RC1? It has the semi VM sharing in it (on windows at least you can open up a bunch of Java applications and you'll only see one java.exe in the task manager ), I wonder if that has something to do with the sound not stopping?
Lots of people have built Java applet video players. Fluendo isn't claiming to be the first; they're claiming to have the first Theora Java player.
Do you have the source to your software available for all to use, free of charge? No? Didn't think so.
These guys aren't claiming to have invented a java media player, they simply ported an open source codec to a different platform. And they're doing it for free, for anyone to benefit.
everyday is another shooter.
Does this work use JCraft's JOrbis?
What's really interesting is to see such serious DSPing work so well in Java. Which doesn't have a very good reputation for this sort of thing. I wish I knew how much improvement comes from improved Java VM, and how much is just because everybody's running 1 ghz systems.
Can't one just use the Java Media Framework API to stream movies over Java applets? http://java.sun.com/products/java-media/jmf/index. jsp
The villian, his boss, rips off the codec and has him killed.
This technical detail was probably the most interesting part of an otherwise thoroughly mediocre movie.
BTW, I kind of had the impression that his codec generated some sort of code. That code is then transmitted to the client and executed, and is ouput is the set of pixels seen on the screen.
The world will not get better through technology. We must seek to be better people.
Just for interests' sake, that technique (code that creates the pixels) does exist, but isn't in common use any more. Back in the days of dos games, when performance was critical, self-drawing sprites were used - the code would output some executable code that would drop the sprite into video memory. Since it was moving direct values into memory, instead of reading memory and writing back, it was faster. However, as I said, the technique isn't used any more, because it's just too troublesome for what is now a minimal performance gain.
-ReK
md5sum -c reality.md5
reality: FAILED
md5sum: WARNING: 1 of 1 computed checksum did NOT match
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.
Sounds like PostScript - a program the printer (or other output device) executes in a virtual machine to render the output.
I belive there are quite a few security issues with older versions of Fire*.
HAND.
Precompiling does offer advantages, at least at this point:
1) More efficient binary code. Seriously, if you think you can make Java generate more efficient code than the Intel C compiler in a general purpose situation, you be my guest but you are going to lose. Intel has an extremely efficient compiler for the precompiled world and in general precompiled stuff, even on just an ok compiler, is faster than JIT.
2) Access to native resources. Java abstracts everything by necessity to pull cross platform compatibility. Fine, but there is a reason for things like DirectDraw, ASIO, OpenGL, etc to exist. For video, using DirectDraw is a major performance boost. You can do it C++, you can't do it in Java.
Now neither of these are things that are necessiary perminant truths. It is, in theory, possible to make a JIT compiler generate as or more efficient code to a precomiler. It is also possible, in theory, to modify Java such that it can directly access accelerated OS features.
However the theoritical future has nothing to do with now. At this point, precomiled code is more efficient (in some cases quite a lot) and Java does not provide access to accelerated features. There is a REASON that Doom 3, UT 2004, etc are written in a language that precomiles to native code. Both seek to be cross platform (and UT 2004 is to an amazing extent) however Java is NOT the right tool for them at this time.
So while I certianly think something like this is cool and valuable, and am glad to see it implemented, don't think that it'll be as fast or efficient as a native player compiled with ICC.
There is nothing insightful about the parents post, he isn't making a wise comment, he is presenting interesting information. Hence he should be modded interesting, not insightful.
Insightful would "got" the distinction between someone creating a java player closed source and tanking and someone who is not claiming to make the "first" but is making it OSS, and with an OSS codec. That's the wow factor here, the geeky coolness is the fact these guys have done it all OSS not *just* that it works better than the shitful quicktime, wmv or real.
And on another note, I don't care who came up with it "first" - there are many cases of people comming up with stuff totally independantly of each other with the same end result. This is why patents are stupid. These guys deserve massive kudos here for releasing it OSS.
some boring guys sitting in the office
Like, whaddaya expect from Java programmers? Jeez!
(I do Java programming so I know.)
I hadn't the slightest objection to his spending his time planning massacres for the bourgeoisie... (P.G. Wodehouse)
There was a JVM exploit at least a while back, don't know if it still exists. It was experienced in a controlled environment. The other side got a connect-back shell and convinced my side of having it (through uname -a and other such things). All this because of a buffer overflow in the JVM. Sandbox had little of help with it.
There might be JVM exploits out there even now, but they're most likely non public.
14 year old incredibly annoying advertisers. That explains a lot about the web.
Analogies don't equal equalities, they are merely somewhat analogous.
kak
don't ask, I have a split personality
Yes, the applet does use JOrbis.
I kind of had the impression that his codec generated some sort of code. That code is then transmitted to the client and executed, and is ouput is the set of pixels seen on the screen
:)
I seem to remember the creator of Vorbis (Monty) writing once that he wanted to make an audio codec exactly like that but that there wasn't enough time. The priority was to get a working codec out there, which later became Vorbis.
I can't seem to find anything about it on Google so it's possible I imagined it
Just a warning, but the video is of a woman walking around in see thru lingerie.
Oh no!
Arrg, two weeks of e-mails and phone calls to find out "we're really not set up to provide this as a product".
This ticked me off.
-- ac at home
the people using flash are either:
1. 14 years old
2. incredibly annoying
3. advertisers
The only site I know that uses flash properly.
example
Ok this development is really cool. I was impressed to see the applet load quickly and play quite nicely. But for teh love of god, they are coding to "I Feel Like a Woman"!!!!
Comment removed based on user account deletion
Keep in mind I'm only using Intel Celery flavored PIII coppermine], with an average load of ~5% CPU utilization for the GUI.
My impressions? It couldn't keep audio, yet alone video going smoothly at 100% CPU utilization. This is with JRE 1.4, as another poster said, perhaps (hopefully) this would be better with version 1.5.
I would hope that they can get this to work on much lesser hardware, because IMO the embedded market is what Java is slowly headed towards. Remeber, Java was originally designed to run on embedded hardware, when Sun realized the embedded market just wasn't there yet, the decided to unleash Java on the internet. This is a very cool technology indeed. No codecs to worry about, no media player to install...just an OS with JRE installed.
As another poster said it seemed to use pretty low CPU utilization under Linux. 30% on a 1.2ghz processor and my lowly 566mhz Coppermine Celeron can't keep up at all? Is the 1.2ghz processor that much faster? It shouldn't be even 200% faster than the PIII (well, better FSB helps I guess)
Just some thoughts from the sidelines...
zosX
zosxavius photography
Now they are watching Shrek 2, but I only hear the sound, no video. Quality is quite good. It must be an illigal download btw...
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'm getting about 30-40% CPU usage (of 200% for this dual proc Mac), with stuttering performance (though that may be due to bandwidth limitations on their mirror). Safari, 10.3.5, 1GB RAM, 2x2GHz G5. Plus there are no video controls for pause, whatever, but this is a live stream, so I'm not sure there are supposed to be in this mode. A big meh from me...
"I like systems, their application excepted", George Sand (French)
...there has been some cases where it's been possible, but that was using the horribly out-of-date MS JVM and even that's now been patched.
I am NaN
are overflows. I believe a XUL vulnerability was recently discovered (Revealed? I seem to recall something about it having been known about for ages, just not publicly) which would leave you vulnerable regardless of W^X, stack prot., whatever else you have. Welcome to the wonderful world of a turing complete UI language.
HAND.
Well, if you want to get technical...
All data on a computer is a "program" of one sort or another. I mean, an HTML document is a "program" that a web browser runs. It's just that the web browser limits the instruction set that the HTML document can use. Same can be said for a JPEG or a Word doc. At the other end of the scale, even direct "executable" files tend to run on some idealized virtual machine that looks like x86 CISC, but is really more like a RISC machine under the hood. OpenGL itself is a virtual machine that hides the specifics of graphics card implementations. You get the idea.
All data formats fall somewhere on the continuum between passive data and active programs. The way we decide what to call it is usually based on the scope of the instruction set used by the program, and what virtual machine is required to run it. It all depends on your perspective.
"In a 32-bit world, you're a 2-bit user. You've got your own newsgroup, alt.total.loser." -Weird Al
Hey Publishing in JAVA is practicaly Open Source since the code decompiles back to very clean source with original variable names and everything so most JAVA players are derivative works. See Mocha or JAD for decompilers.
BTW I am assembling a list of all Java streams systems
I am always doing that which I can not do, in order that I may learn how to do it. - Pablo Picasso