How does an "On Demand" cable service work?

I have Comcast cable at home, which offers a service called On Demand, allowing me to watch a fairly large selection of movies and programs. I can select the program from a menu and start and pause it when I want. But how does this work? Do they feed a video stream specifically to me? I happen to have the cable box with a built-in DVR, so it’s possible they are downloading the selected program to it, but is a cable box with built-in storage required for the On Demand service?

I have the same Comcast service. I also have the DVR, so I can’t tell you whether it is available to subscribers without the DVR, but they way it’s advertised, I believe it is. I have always assumed that it’s similar to streaming video over high-speed internet, but over the TV cable instead.

I work in the cable industry and spend a fair amount of time with Comcast. I do know a a bit about their On Demand network.

When you decide to watch a movie, your set top box (must be digital) sends a message to a video server located somewhere in your city. The server sets up a session with you set top box. A single digital TV stream (about 3.5 MB/s) is reserved for your use. Generally 10 or 11 of these streams fill a 6 MHz TV channel. This makes the On Demand system is a major user of network bandwidth. To allow any significant number of On Demand users, the network must be segmented – different streams are sent to different geographical locations within the network at the same RF frequencies.

There are many more details. But this is a high-level overview of how the system works.

I’ve wondered about this myself. If I understand Ex_Chemist’s post, an on-demand PPV order does not cause the content to be downloaded to my box, but is operated remotely on the local video server.

That would make sense, as I’ve noticed a slight delay in response to the remote, compared with when we’re watching a DVD.

Ex_Chemist if you would be so kind, I have a follow up question…

How is the information streamed to so many users? If I want to watch 3 or 4 MPEG files stored on my hard drive simultaneously, my computer can’t do it because the drive only has one set of heads. Is a seperate data source required for each user?

Thanks for the explanation, Ex_Chemist. And as a followup to zoid’s question, how much storage is required for all the movies available to me? It sounds like a lot.

It is. I had OnDemand for about a year before I got the DVR box.

The content is stored compressed (MPEG2 is most common today). Compressed standard definition video typically under 1 GB per hour. So, a server with 20,000 hours of video (fairly typical) would require 10 to 20 TB (10 to 20 terabytes) of storage. This is large, but within current technology using multiple disk arrays.

It turns out that the main problem now is getting sufficient bandwidth out the server to support all the required streams. Video servers have many GbE ports. The IP switches and transport required are truely impressive. I know several systems which use multiple 10 GbE links to provide VOD transport.

Video servers are fairly specialized. They must work with set top boxes and support huge bandwidths. FYI, the most popular video servers are made by Concurrent, SeaChange, and nCube.

A good caching/spooling system and a lot of memory will fix the hard drive limitation. As Ex_Chemist explained, the limit is in bandwidth, not data storage access.