Freelancers Network
 
skill list top cap
Homepage
Join the Freelancer's Network
Update your details
Find a freelancer
Post a project
Find a project
Projects Archive
Post a job
Find a job
Jobs Archive
See Dan's Pages
See Andy's Pages
Link to this site
Resources
Join/Leave Forum
Forum Messages
+Additions+ Adverts
Advertising
Contact Us
Subscribe to our newsletter - enter your email address and hit return
Freelancers.net is owned and operated by Andy Stowell and Dan Winchester
skill list end cap
guru web hostcom

Find me again on Freelancers.net

Re: FN-FORUM Live (Webcast) Video Streaming

date posted 28th June 2002 23:46

Felix posted some good advice. Here's some extra info on the QuickTime
front.

> 1 Get the film into the computer system
> - connect your camera to your computer. You'll need an encoding
> program to turn it into a streaming format. Make the initial film as high
> quality as possible. Quality goes downhill from here.
> - live encoding is very processor-intensive, multi-stream encoding
> even more so. You need a good machine and don't let it do anything else
> while encoding. Have a spare machine available if possible
> - camera-pc connections include video capture card (quick but
> expensive),firewire, USB. Check transfer speeds for the latter two. Video
> capture card saves the computer some work.

For QT, DV is definitely the preferred input format. You can have several
cameras plugged into your firewire bus and switch between them if you're so
inclined. There are several encoder apps for QT. For Windows (and MacOS)
there's Sorenson Broadcaster, which is getting a little crusty nowadays. For
MacOS X there's the new QuickTime broadcaster (free), and ChannelStorm's
LiveChannel ($100), which is an amazing app, allowing multi-camera
switching, text streaming, overlays, real-time effects, multi-lingual output
and lots more.

> 2. Send the encoded stream from your computer to a server
> - you need enough network bandwidth to send one stream between
> your PC and the server ie if everyone will be viewing at 80kbps, then
> that's the bandwidth you need
> - if you're sending a multi-stream broadcast for viewers on
> different connections you need to add the total bandwidth (eg for viewers
> on 56kbps + 80kbps + 128 kbps needs 264kbps

QuickTime is both more complicated and more capable when it comes to
multi-rate streams. QT will happily serve a multi-rate stream, but each part
of the stream needs to be compressed separately (not a problem given that a
single camera can be shared by several machines on a firewire bus).
The flip side of this, is that QT can produce streams where you can vary
everything for each stream. Both Real and WM only offer one variable for
producing different bit rates - quality, which is a major downer for the
range of rates that are appropriate - you either have to severely limit the
quality of your hi-band output or make you modem rate output look like crap.
In QT you can vary both video and audio codecs, frame sizes and frame rates
for each rate of the same stream. QT also has much better support for
audio-only or video-only streams, plus multiple channels of audio and
subtitles, overlays etc, along with synchronized web frames (a stream
running in a browser window can issue http requests targeting other frames
from URLs embedded in the stream - perfect for narrated slide-shows), Flash,
ad insertion and the rest. Sorenson 3 is also generally better looking that
either Real9 or WM8, especially at low bandwidths. You should also look at
the ZyGoVideo, StreamBox and On2 codecs which are all very impressive.

> 3. Send out the stream from your server
> - here you need to bandwidth to cover total viewing eg 10 viewers
> at 56kbps and 10 at 80kbps = 1360kbps

That's the same for everyone. However, as the QT streaming server (available
for just about any platform and entirely free and open source) also acts as
a proxy/relay, network admins can install it on their LANs to minimise usage
of their uplink and hence demand on your server.

> 1. Format
> - the encoder and the player must be in the same format but the
> server need not be eg encode in Windows but use RealServer. Encoders are free
> - Windows is universal on Windows platforms but you need WMP7 for
> video. Very flexible for creating web pages, but very complicated.
> Inefficient but firewall-friendly
> - RealPlayer is less common but cross-platform. Again you need a
> 2000+ player ideally. It also streams in multiple bit rates so you can
> target the audiences better. Very easy to set up web pages for a simple
> streaming. Uses efficient RTSP protocol, but this can cause firewall problems
> - QuickTime like WMP can be linked into aplications very flexibly,
> but not so common. Also uses RTSP.

You need to watch out for this rtsp business. Many firewalls filter it out
by default. It's common to provide a separate stream on TCP port 80, which
will usually get through anything as it look like a web connection to the
firewall, but TCP transport doesn't work as well for streaming as UDP when
it comes to handling poor network conditions. All 3 streaming servers can
deal with this firewall issue, but it does mean that you need to run your
streaming server on a different IP from your web server (can still be the
same machine however).

> 2. Server
> - RealServer serves anything, including MPEG4. Very easy to use,
> very reliable, good at authentification. FREE version for up to 25
> concurrent viewers, but then costs a lot for the next step with up to 60
> viewers. Cross platform
> - Windows Media Server FREE with W2K server for unlimited users.
> Limited options unless you buy and spend a lot of time with other MS server
> products, but okay for a single simple broadcast. Not certain reliability
> yet. Connections need testing lots. Windows only
> - Darwin (QuickTime) is FREE and cross platform. Haven't had much
> experience with this, but it seems to work okay. uses same ports as Real so
> if you have both onthe smae machine change the default port settings

It's a little confusing here. Darwin Streaming Server is the open source
name of the QuickTime streaming server that ships with MacOS X, but they are
essentially one and the same. Darwin runs on FreeBSD, Solaris, Windows,
Linux and various others. I have a patched version running on OpenBSD.

Here's a twist - Real servers will stream QuickTime files to QuickTime
clients. Why you would want to is beyond me as the Real servers are
horrifically expensive.

If this is not happening RSN, you might like to see what happens with
MPEG-4. QuickTime 6 does MPEG-4 very nicely, and it's all interoperable,
that is, Real, QuickTime, Philips etc MPEG4 clients will (in theory) be able
to view streams from any MPEG-4 server. WM/MS has nothing to do with MPEG-4,
despite several mis-named codecs floating about. Darwin streaming server has
supported MPEG-4 for the last 9 months or so; QuickTime broadcaster will
generate MPEG-4 on the fly. Although MPEG-4 can look pretty pretty good at
lower data rates (around 64kbits), it doesn't hit the highs of the
proprietary codecs in QT, Real or WM, though MPEG-4 encoders do vary in
quality. The price of a standard I guess.

Of the three formats, WM is truly awful to work with (Try making a 10 sec
stream out of 1 image - its' surprisingly difficult!). Real is pretty good,
but doesn't get anywhere near the thousands of production/authoring apps
that QT has. Ironically enough, it's hard to get any decent WM or Real
output without involving QT somewhere along the line. Although there is
officially a version of WM for MacOS and MacOS X, it's a complete joke - I
have yet to get it to play anything without crashing. RealPlayer on MacOS is
not bad if you can stand the evil registration process and constant ads.

QT is the only option that can be digitised, compressed, uploaded and
distributed to any number of users entirely using free software with no
server, royalty or per-stream charges. Bandwidth you do still have to pay
for! It does help to shell out for QT Pro for authoring though.

> 3. Skip the server?
> - go to a third party and hire hosting. Probably your best option
> if you want to do Real streaming for >25. StreamGuys
> (http://www.streamguys.com/) is very cheap and have been good for me, but
> only go up to 100 viewers. Windows is streamed via http.
> - use Windows Media Encoder's direct streaming capability ie
> people log in to the PC directly. Good option for very small numbers but
> remember that the total viewer bandwidth will be passing through your
> entire network.

Given that it's usually the connection to your local site for that's the
limiting factor (you're not about to install some fat pipe for a temporary
feed), there's an alternative here too. Host your own feed on your own
hosted server and explode your stream from there. There are many ISPs who
will simply charge you by data volume rather than number of streams.
Admittedly, you probably don't want to do this unless you're planning on
doing it often, and as you're taking on much of the responsibility, it helps
to know what you're doing, so get help if you need it.

> 4. Decide on viewer quality
> - picture quality x picture size = bandwidth needed. With Real
> (the best of the video codecs) you can get a good quality picture of say
> 2x3 inches even at 56kbps. But even with Real 9 codecs to get tv-sized
> video you'll need around 300kbps for VCR and 600kbps for DVD
> - multi-stream or single-stream? One stream simplifies matters and
> lets you use all the players/servers. But multi-stream means you don't have
> to target the lowest common denominator

As I said, multistream is very good but complex with QT, and I'd contend
with the quality!

> 5. Afterwards
> - archive the video while you're doing it. Then you can put it on
> the web later as video-on-demand. For that, you don't even need a streaming
> server, although a 10-user free server will almost certainly be enough
> anyway. Archiving requires processing power.

LiveChannel does archiving on the fly, so users can start watching a live
webcast from the beginning while it's still happening, TiVo-style. Actually
it helps if you DO have a streaming server for this, particularly if you're
using WM or Real as they have such poor support for progressive download
(non-streamed) video. Darwin will simultaneously stream live, on-demand or
playlisted streams, and your web server (Apache, IIS or whatever) will
handle progressive downloads. Archiving doesn¹t really need CPU - most of
the effort is in creating the stream in the first place, and a live stream
is not normally placing any stress on disk I/O, so it's almost a "free"
feature.

You may have gathered I'm rather keen on QuickTime! After all the above is
sad & done, streaming only accounts for about 10% of what QT will do,
compared to about 90% of Real and WM abilities, and yet it's a smaller
client download than either. Oh, and don't let anyone try to convince you
that Flash can stream...

Whatever you do, hope your webcast goes well.

Marcus



Messages by Day
June 30th 2002
June 29th 2002
June 28th 2002
June 27th 2002
June 26th 2002
June 25th 2002
June 24th 2002
June 23rd 2002
June 22nd 2002
June 21st 2002
June 20th 2002
June 19th 2002
June 18th 2002
June 17th 2002
June 16th 2002
June 15th 2002
June 14th 2002
June 13th 2002
June 12th 2002
June 11th 2002
June 10th 2002
June 9th 2002
June 8th 2002
June 7th 2002
June 6th 2002
June 5th 2002
June 4th 2002
June 3rd 2002
June 2nd 2002
June 1st 2002


Messages by Month
December 2002
November 2002
October 2002
September 2002
August 2002
July 2002
June 2002
May 2002
April 2002
March 2002
February 2002
January 2002


Messages by Year
2009
2008
2007
2006
2005
2004
2003
2002
2001
2000