1

I searched and googled for an answer but couldn't find one.

Basically I'm developing a webcam/audio streaming application which should capture audio and video from a pc (usb webcam/microphone) and send them to a receiving server. What the server will do with that it's another story and phase two (which I'm skipping for now)

I wrote some code using DirectShow and Windows Media Format and it worked great for capture audio/video and sending them to another client, but there's a major problem: latency.

Everywhere in the internet everyone gave me the same answer: "sorry dude but media format isn't for video conferencing, their codecs have too high latency". I thought I could skip the .wmv problems but seems like it's not possible to do... this road ends here then.

So I saw a few examples with DirectShow.NET which were faster for both audio and video.. my question is: how come that DirectShow.NET is faster and better for video/audio conferencing? Shouldn't it be just a .NET porting of C++'s DirectShow?

Am I missing something? I'm a bit confused at this point

Paul Andrews
  • 125
  • 1
  • 7

1 Answers1

1

Yes, DirectShow.NET is just a port providing managed mappings for the unmanaged DirectShow. Windows Media is indeed not ideal for low latency, but you can somewhat mitigate by choosing the right codec/profile, i.e. Low Delay CBR and settings. In the end though it depends on the consumer (Windows Media Player mostly, Silverlight is better) how much content is buffered before displaying a frame.

To cut a long story short limitations are the same for DirectShow.NET and DirectShow and I doubt you'll get below 2 seconds latency using Windows Media.

BrokenGlass
  • 158,293
  • 28
  • 286
  • 335
  • OP here: thank you for your answer. Do you think it's worth to study on how to apply the Low Delay CBR codec/filter? 2 seconds will be awesome for my needs. 3 seconds are acceptable too without problems. 11 are simply too much. Any sdk/link on how to document about that filter? I am starting searching but a waypoint would increase my speed! – Paul Andrews Jan 15 '11 at 21:20
  • this http://www.microsoft.com/windows/windowsmedia/howto/articles/codecs.aspx is a good start (if a bit outdated). If you have Windows Media Encoder it comes with an editor for encoding profiles, just pick a Video CBR and the Audio Low Delay CBR codec. The settings link in my answer above also details the best codec to use. – BrokenGlass Jan 15 '11 at 23:05
  • Thank you, I'll study your link tomorrow. Very kind of you sir! – Paul Andrews Jan 15 '11 at 23:23