views:

319

answers:

1

For years we've been using RealNetworks' Helix server to serve streaming video courses.

It has been a pretty reliable solution up until now.

As of late, our support calls due to RealPlayer issues has gone from 2 or 3 a week (mostly PEBKAC or firewall issues) to up to about 10 a day.

I've been arguing to dump Real in favour of something else, but I really need to put together a proposal.

What are the alternatives based on the requirements below?

Requirements:

  1. Streaming, not download and play.

  2. Clickable bookmarks embedded in the video (Real Text);

  3. Able to handle about 100 simultaneous connections.

  4. Able to recognize authentication from another server on the same network.

Constraints:

  1. Small, free (as in beer) client/player (i.e. No embedded itunes!)

  2. Platform independence of client/player (player must be available to windows/mac/linux)

+1  A: 

You could do it the way youtube / google video / dozens of other sites do it. 10 bajillion videos can't be wrong, right?

Basically there's three main parts:

  1. Streams FLV or M4V videos over standard HTTP, can use any old webserver like apache for this
  2. Client is a Flash application. Cross-browser, cross-platform, everybody can watch it
  3. Seeking in the stream without having to buffer the entire video first -- this is accomplished with some server-side trickery. Basically if you are watching at the beginning of a 30 minute video, and immediately click at say minute 23, you don't want to have to wait for the entire thing to download first. So what happens, is the browser makes a request to like http://example.com/getvideo.php?id=1234&position=23 -- and then the server-side script dynamically cuts the video at the nearest keyframe, slaps a FLV header onto it, and starts streaming the video from that point. There are several pre-made scripts out there, I haven't tried it, but xmoov looks like a decent one.

As for your requirements:

  1. Streaming - yes
  2. Clickable bookmarks - you can do this with some flash scripting. bookmarks would be stored in a separate file (XML perhaps), along with timecodes, and the flash player would show the correct bookmark depending on the position of the playhead in the video
  3. Sure, can handle as much as your webbrowser can. Perhaps look into something like lighttpd if apache/IIS isn't fast enough
  4. Not sure what you mean by authentication from other servers. Need more explanation on this one.

Constraints:

  1. Yeah, player is free. Doesn't even need to be installed, runs straight from the browser. You can write full flash applications using only open-source tools. (some official ones from adobe, some 3rd party ones, depending on your needs)
  2. It's flash, runs everywhere (except for 64bit firefox on 64bit linux, but they don't deserve flash, they whine too much)
davr