Link-addressable streams

To broadcast a stream, you point QuickTime broadcaster at DSS, export an SDP (session description protocol) file from QuickTime BroadCaster, and place it in the streaming server's Movies directory. To view the stream, launch QuickTime Player and load a URL like rtsp://dss_host/broadcast.sdp. Once I got this working I moved the server to a second DSL circuit in my lab. I configured the firewall to allow TCP ports 80 and 544, and UDP ports 5432 and 5434. And amazingly, it all worked. From my TiBook on one Internet-connected private LAN, I was streaming video to a server on a different Internet-connected private LAN. That server's broadcast was available -- at an eight-second delay -- to any QuickTime Player on any platform anywhere on the Internet. What's more, the TiBook could be sending the stream from any Wi-Fi-equipped meeting or conference, anywhere on the Internet. [InfoWorld: Mobile Webcasting: November 26, 2003: Jon Udell]
After this column was done, I repeated the experiment using Real's Helix server. I tried the open source version 10.1 first, but couldn't quite get it to work. (Version 10.1 just came out a few weeks ago, and online chatters suggests others ran into the same problem I did.) So for now, I'm running the commercial version on a 30-day eval. Apart from live broadcasting, I wanted to explore an idea I've been really interested in lately: quoting from streams by linking into them with URLs that include start/stop times.

The Helix server is handy for this experiment because it supports Real, QuickTime, and Windows media players. So I converted the Knowlege Navigator video into each of those streaming formats, and started hunting around for URL syntaxes. My search hasn't been exhaustive yet, but so far I haven't gotten any farther than before. I can use file.rm?start=mm:ss&end=mm:ss for the Real player, and it seems to help some browsers if you encapsulate that in a .ram metadata file, which the server will generate, i.e. /ramgen/file.rm?start=...

I'll be darned if I can come up with an equivalent method for an rtsp: URL that plays a QuickTime stream, or for an mms: URL that plays a Windows Media stream. I found some documentation for QuickTime starttime/endtime parameters but, while these are supposed to work with links as well as in EMBED tags, I can't so far get that to happen. I've also found documentation for the SMIL clipBegin/clipEnd syntax, but can't seem to get that to work with any of the current players. And in any case, it would seem to require writing a metafile.

Granted I'm new to all this, but the whole streaming situation does seem like a bit of a train wreck. My son made a Lego animation over the weekend, I converted it to all three streaming formats, and then I had to write up a whole page of instructions so that friends and family could view it. Even then, although I could view the streams in all three players on both Windows and Mac, the success rate reported back to me was only about 50%. It's like your worst cross-browser nightmare on steroids.

I also observe that when I use Google to research my questions, it comes back with far fewer hits than I'd have imagined. The impression I get is that there just aren't a whole lot of people using this stuff. I plan to persevere, though. The opportunities are just too interesting to ignore.

Update: David Isenberg is blogging the FCC's VoIP meeting today. I'd like to be a fly on that wall. And in theory I can be. It's being streamed live. But in practice, streams are in short supply. We know there's WiFi in the room. David mentions that Jeff Pulver is using it to get his cellphone to work. It's possible that using the technique described in my column, some additional AV streams could find their way out of that room. That'd be a nice demonstration of the power of decentralized IP networking.


Former URL: http://weblog.infoworld.com/udell/2003/12/01.html#a855