You are viewing bramcohen

Sun, Dec. 19th, 2004, 06:22 pm
Streaming

A few people have asked me about adding streaming ability to BitTorrent.

Streaming could be supported in the current protocol (which makes me a little puzzled by the recent swarmcast announcement stating that a new protocol is being pushed out specifically to support streaming). You 'just' request the next few pieces coming up first, and if you have the next few pieces request randomly.

I haven't worked on streaming for several reasons. First, there have been plenty of performance optimizations to do even without working on streaming, and enhancements to core functionality take priority. Second, the sweet spot for streaming is fairly small. Lots of formats can't be displayed in real time at current speeds of net connections, and among the ones that can it's frequently not much longer to wait for the entire thing to download than to wait for a reasonable size of buffer to accumulate. The one example which clearly works is low quality sound files of an hour or so in length, but that's a fairly niche market. Third, there's the whole issue of how to hook into players to have them use the streamed content. My experiences with third party software have been universally nightmarish, so I'm not very keen on dealing with those problems.

I'd also like to point out the difference between radio-style streaming and play on demand. A lot of people think because of the history that being stuck on a TV schedule is what people want, but in fact people vastly prefer a tivo/netflix interface to a real-time streaming interface, and frequently completely dump the real time when the other one becomes available. Play on demand is when there's a specific file which someone might want to watch and it starts playing immediately when they click on it. That's the vast bulk of what users want. Tapping into whatever's going on in a live stream is a niche market.

Thu, Dec. 23rd, 2004 10:52 am (UTC)
(Anonymous)

Tapping into whatever's going on in a live stream is a niche market.
Live streaming could be more interesting due to the vast availability of TV programs. You only need a TV card and off you go. CoolStreaming (http://coolstreaming.org/) is an example, which has proved that it is possible to serve a 500Kbps live stream to thousands of users with a modest PC and several Mbps uplink bandwidth. If you read the paper about it (http://www.cs.sfu.ca/~jcliu/Papers/CoolStreaming.pdf), you'll find out that its idea of data-driven overlay is very similar to BitTorrent, probably inspired by BT.

Tue, Jan. 11th, 2005 09:14 am (UTC)
(Anonymous): you're wrong

Live shows in America are hugely popular and profitable - have you heard of The Superbowl? The World Series? The NBA Finals? You're right that "on-demand" programming is, in general, what people want, but you simply can't demand The Superbowl before its taken place. Personally I am much more interested in the future of unique, compelling, live internet performances/competitions/talk shows/forums etc than I am in the future of giant libraries of packaged media.

Thu, Jan. 20th, 2005 02:08 pm (UTC)
theorb: Re: you're wrong

I think that's a niche: In purticular, those are all events that are unscripted, truely live. (As opposed to, say, an average television show, which while you could watch each bit of it at the exact moment it's embargo date passed (IE when local affiliates show it -- IE turn on your TV), which isn't really live, and is completely scripted.) They're all things where people get together to watch them in a group environment, and to feel a kinship with the other people watching them. They're things that people talk about after, and spoil the ending.
I'm not saying that live coverage of major events is going to stop... but I am saying I don't think it will increase. Has it been increasing? It's been my experince that the amount of live coverage on TV is decreasing, not increasing, and I see no reason for this trend to change.

Thu, Jan. 20th, 2005 02:10 pm (UTC)
theorb

More interesting is that play-on-demand is becomming a solved problem, with RSS feeds of torrents. Of course, I'd vastly prefer to be able to do it legally, with commercials. (I like commercials sometimes; when done right they can add to the tension of a show, creating dramitic pauses. Unfortunately, that's often only true of the original airings.) A decent algorithim to guess what you'll like from viewing preferences, and a data store for it to work off of, is all that's needed to create a TiVo-like application.

Sat, Jan. 22nd, 2005 08:07 pm (UTC)
(Anonymous): But streaming could be very valuable

Ah but Bram, what about a rock group that wants to broadcast a live concert? - a group that is independent and does not have a broadcast station behind them? It would be so 'disruptive' if anyone could broadcasat, with few resources.... I can see this becoming really interesting as people are connected to the Internet all the time, through their video cellphones. - Cliff

Sun, Feb. 13th, 2005 01:53 am (UTC)
(Anonymous): see www.cybertelly.com

We do exact this now! Live TV with 400 kbit/s even then when only providing 100 kbit/s upload, it works. And anonymity is a important factor. People now can make their own tv and see pay-tv from all over the world.

Mon, Mar. 7th, 2005 08:54 am (UTC)
krellan: Streamer for live radio

Add another one to the "StreamTorrent" wishlist: here is a working program for peer-to-peer live audio, called Streamer.

http://www.streamerp2p.com/

It has a small but active user community, including a few commercial radio stations.

I use it for listening to the Dr. Demento show online (no longer available on any local conventional radio station near me). It really makes a difference: of the few online stations that still broadcast the show, the non-P2P ones are often swamped, but Streamer comes through loud and clear. Unfortunately, Streamer isn't Open Source, which limits its growth.

Since it's serving a realtime stream of data, instead of a static file, its goal is to serve the data at a constant fixed rate instead of as fast as possible. As such, it uses UDP, which also makes it possible to work around the NAT firewall problem!

There's also a legal reason for wanting to support live streaming instead of on-demand downloads: online radio is on shaky knees already (in the USA), with onerous restrictions. If a radio station were to become an on-demand jukebox, it would be quickly busted! Live radio still has a chance online, and personally I often like letting somebody else control the playlist: it gives me a chance to discover new music by artists I've never heard before.

As a bonus feature, Streamer has integrated "DJ chat" for each station, with the community often conversing about the audio that is currently playing (a shared listening experience like this is another difference between live, as opposed to on-demand, audio). Anyone implementing P2P live audio (or any other media) would do well to look at Streamer....