[Ffmpeg-devel] Adaptive Streaming???
Fri Jul 29 12:03:54 CEST 2005
Ravi Chandra Nallan said:
> Does that mean that the media files have to be encoded at different rates and
> stored at the server?
> Is there any chance of re-encoding on the fly, I mean can I encode each of the
> packets that I am going to send at a different rate. I know this would be very
> time taking for the server, but I would like to know if it is possible. There
> would lot of information loss in encoding packets separately than encoding the
> whole file, but can it be done?
Of course it's possible to do on-the-fly encoding, provided you have the CPU
power. In the long run, you'll probably end up encoding each frame at every
bitrate at least once, so encoding the entire file once at various bitrates
seems the more sensible thing to do.
> If the server has to just pick up the right rate stream and pass to client,
> why does the Video On demand systems need high infrastructure. Coz most of
> this would be offline task of encoding media into different rates.
Imagine 100 clients each streaming different movies simultaneously. Even at
a modest 2Mbps per stream, you'll need to push out 200Mbps of data. That's
25MBps to be delivered by your hard drives. Since this is not sequential
access (100 different files), a single disk won't stand a chance, and you'll
need to go for a more sophisticated setup.
You'll also need to get the data onto the network at the same rate, meaning
there will be a total of 50MBps of traffic on your busses. The theoretical
maximum rate for a 33MHz 32-bit PCI bus is 132MBps. In reality, the highest
I've seen is about 80MBps when transferring to a single card, using long DMA
transfers. When more than one card is involved (as must be the case for a
VoD system), 50MBps is probably nearing the realistic limit for a single bus.
There will also be a significant interrupt load on the system. The network
traffic alone will generate around 20000 interrupts per second.
Dealing with all this at once, and in a timely fashion, naturally requires
more than a low-end system.
mru at inprovide.com
More information about the ffmpeg-devel