Personally I don't think that P2P video from a browser is probably the best utilization of this technology. Someone mentioned that even the top videos on Youtube only have 4-5 concurrent users. That alone generates a lot of difficulty for that approach. I supppose that the distribution of traffic on Youtube will have a rather fat long tail. Also from a user's point of view for this approach to work it would require storing not only one video but many. I don't see the point of using my diskspace and my bandwidth for Youtube. That's different for Joost. They get users to download, install, and share the bandwidth as they have more valuable less fat tail content to offer. What's more if you are watching fullscreen you probably won't mind that Joost is making use of your upstream. However if you interpret P2P in the browser as a potential Web cache, and don't restrict yourself to the video approach there are lots of interesting things one could do. You just have to look out for Power-Law shaped traffic around big chunks of data. Maybe internet radio with high quality streams where you could time-shift streams to make optimal usage of the P2P approach. Or the distribution of software. Once you have several millon users using your applet or whatever, you could become the next akamai. To get there one probably would have to go to those guys where bandwidth really hurts. Thinking of sites like the underdogs.com, shareware distributing sites, web radio, etc ... . If you can make them happy by potentially saving bandwidth, and the users are happier by potentially increasing download speed, you might get those guys to ask user's on their web sites to download your little thingy. I think there is room for a P2P based web cache, probably not in distributing Youtube like videos. Perfecting the P2P part, and being able to aquire a sufficient install base, a lot of opportunities might arise. Go speed up the net ;-).
Looks like a cool solution to video bandwidth problems. I'd like to read more about the technology behind it..
These guys should consider trying AIR or Silverlight rather than a Java applet for a more transparent and lighter weight implementation. Java applets are quickly going the way of the dinosaur..
My guess is they're using the applet to run the P2P program and the Flash client to connect to various P2P "servers" over HTTP (or possibly) RTMP for streaming.
I don't think you can bind to local ports and run servers inside AIR or Silverlight, but you can in Java applets.
They could theoretically have 100k P2P Java applets running on "super node" (high bandwidth) machines serving an audience of millions of leeching peers. Hopefully they've realized this. It's probably the best way to mitigate the applet problem: only require 10% of people to have it.
AIR actually has a full network API, Silverlight might too but I'm not sure. So listening on a local port should still be possible. Just be mindful that your protocol makes it through NAT ok.
Your distributed idea is cool, but I think the intended benefit here is to avoid escalating hosting costs when having to do it all in-house. YouTube was paying $1M per month in hosting fees pre-google acquisition.. ouch
I haven't programmed Java Applets since 1996. Have they solved the stability/slowness at loading issues yet? It always seemed like a shame that they weren't put to more use, and yet they slowed the browser down and crashed it so much it put my right off them.
If they're using Java they could just as well use a Java video player. My guess is that it's closer to "off-the-shelf" for Flash, and the networking stuff is closer to existing code in Java. I'm sure those parts'll all be redone in Flash next.
Hmm, apparently a missing listen() means they have to bring in an entire second language and VM. I don't get why normal sockets are so anathema to web purveyors.
I don't have anything against java applets, but I'd like to hear their rationale for using them--pg is known to have publicly criticized java, after all.
Applets only have one major problem, which is their iffy deployment process. Once running, they're about as good as a desktop application.