Re: Using WMV for timeshifting live source?

From: Jeremy Noring (jnoring_at_wilife.com)
Date: 03/25/04


Date: 25 Mar 2004 09:56:31 -0800

michaelruck@online.de (Michael Ruck) wrote in message news:<f674bce.0403241521.6b87d84c@posting.google.com>...
> Hi,
>
> I am looking at various video and audio codecs to compress a live
> stream (e.g. tv or other source) for timeshifting purposes. Maybe
> someone on the group can answer the following questions:

Just as a warning: the tools for working with WM9 (or lower) codecs in
directshow are not very developed--especially in the C#/managed code
world. Things you may want to use (such as the stream buffer engine)
are typically not supported for the windows media format. As much as
I like WM9, I think for any sort of serious DVR application the
DirectShow tools aren't developed to the point that I'd like them to
be and it can end up being an enourmous headache when you have to spin
your own filters.

This may or may not be a concern for you, but....just thought I'd
mention it.

> 1. Is it possible to use WMV/WMA to encode *and* decode at 25fps and
> full PAL resolution (768x576) ? If not which codec would be more
> likely be able to accomplish this?

If your concern is CPU power, then I guess the answer is that to do
such a thing, a certain amoutn of processing power is going to be
required. However, in my application I decode and render multiple
streams (six or more) simultaniously on a P4 2.6 GHZ
processor--perhaps that will give you some idea of the processing
power required. I personally think you could decode and encode those
streams simultaniously if you have anything relativly new.

>
> 2. Which WMV/WMA version should I use?

Windows Media 9, without a doubt.

>
> 3. How would I use the codecs in a DirectShow graph? Via the DMOs or
> are there other alternatives?

I've found that using both the WM ASF Reader and Writer (which are
included in the WMFSDK) and various DMO objects works best. See the
WMFSDK for documentation on those filters--some is included in the
DXSDK, but the stuff in the WMFSDK seems to be more coherant and
comprehensive.

> My biggest worry is the CPU usage and dropped frames. Is it possible
> to reduce the encoding process to a minimum (small or medium
> compression is sufficient.)? What colour space should be given to WMV
> to optimize encoding? Is it YV12 as for MPG?

I'd play around with the Windows Media Encoder (part of the WMESDK?)
to see what sort of CPU usage you incur. It'll give you a good idea
of what sort of performance to expect.
 
> Thank you,
> Michael

No problem.



Relevant Pages

  • Re: compressed interleaved stream
    ... > and I would like to compress it. ... > Which codecs I need in such case? ... I am not aware of any compressors that take a DV stream and compress it ... (Otherwise, don't expect a followup) ...
    (microsoft.public.win32.programmer.directx.video)
  • Re: which lossless codec for music?
    ... the point of WAV PCM. ... Some of the higher bitrate codecs are still fairly passable. ... But if you wanna compress PCM, you should first convert to 8-bit (no ... size of an MP3 with noticibly reduced quality. ...
    (comp.compression)
  • Re: Net Remoting and Performace
    ... You use the Binary Formatters, serialize the data, and compress the data. ... You're going to populate the object with your data with object accessor properties that represent your data int, string, double, etc. You'll use the attribute at the top of the class. ... You'll notice that it's doing it with a Memory Stream, ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: Compress a subset of bits form
    ... What is the best algorithm to compress the information, ... Is this information stand alone or what. ... Third option if part of a stream use pure arithmetic ... My Crypto code ...
    (comp.compression)
  • compression - dropping the last byte
    ... I have a byte array filled with random data (with a fixed seed to make ... I then compress and decompress this using the 2.0 GZip ... using (Stream input = new MemoryStream(data)) ... using (MemoryStream output = new MemoryStream()) { ...
    (microsoft.public.dotnet.languages.csharp)

Quantcast