none
Windows Media Source Filter gone in Vista/Win7 -- Alternatives?

    Question

  • As has been posted elsewhere by Chris P_, there is apparently no longer a stock DirectShow solution for dealing with MMS: (or HTTP: ?) WMV streams on Vista or Windows 7.

    I have an application that uses this functionality. For a while, I was using the WM ASF Reader to handle internet streams, but found poor performance and a memory leak. I switched to the Windows Media Source Filter and it worked much better.
    There will be a Win7 x64 release soon, and the app can no longer handle streams. I'll re-test the ASF Reader in Win7, but I don't think it's really supposed to support streaming.

    I don't understand why they had to completely remove the filter. No DirectShow apps can handle WMV streams on my Win7 system. Even if no more development is planned, it provides backwards compatibility at no great cost (IMHO).

    What are my best options? I'd rather not spend the time to convert over to direct Windows Media API use (just for this), but if I must... Is Media Foundation the "right" answer? I'd like to keep the code extensible, for future alternative file format and streaming format support.

    Thank you,
    - LoopinFool
    Wednesday, January 06, 2010 10:40 PM

Answers

  • The Microsoft solution is that there is no solution. 

    Media Foundation doesn't support MMS either, and it likely never will.

    WM ASF Reader doesn't offically support MMS either, although it somewhat works with HTTP and probably MMS encapsulated in HTTP.

    The only way to get it working globally would be to create your own MMS stream reader and passing the data to the WM ASF Reader for demuxing.

    www.chrisnet.net
    Wednesday, January 06, 2010 11:29 PM

All replies

  • The Microsoft solution is that there is no solution. 

    Media Foundation doesn't support MMS either, and it likely never will.

    WM ASF Reader doesn't offically support MMS either, although it somewhat works with HTTP and probably MMS encapsulated in HTTP.

    The only way to get it working globally would be to create your own MMS stream reader and passing the data to the WM ASF Reader for demuxing.

    www.chrisnet.net
    Wednesday, January 06, 2010 11:29 PM
  • Ouch. That's what I was afraid of. I have customers who count on being able to stream existing webcams that use Windows Media streaming.
    I need access to the raw decoded frames, so I can't use the ActiveX control for this.

    Since the Windows Media SDK should still support it, I would think it would be easier to write a simple WMSDK-using source filter (probably very similar to the deprecated MS version) rather than dealing with MMS and/or HTTP streaming directly. I also need to support audio, and that might get tricky.

    Thanks,
    - LoopinFool

    Thursday, January 07, 2010 3:56 AM
  • If they reconfigure their streaming servers to use HTTP or MMS over HTTP then it should be a lot simpler as you can then convince the WM ASF Reader to accept those streams.

    I'm not 100% certain if the low level WM SDK even natively supports MMS.  It may be that the MMS reading was always handled externally and forwarded to the reader as an IStream.

    www.chrisnet.net
    Thursday, January 07, 2010 4:44 PM
  • I don't have any control over the streaming sources. The customers need to be able to stream from various webcams (often their local city traffic cams).

    Actually, the WM ASF Reader is able to stream from all the webcams we've tested. The biggest problem is that it has a bad memory leak when handling multiple streams (separate filter graphs). I have verified that this memory leak is still present in Windows 7 (64-bit). It also has pretty poor performance (buffering, stoppages, etc.). I even found a mention in Microsoft documentation somewhere that the WM ASF Reader doesn't support network streaming at all, so I don't expect it to be fixed.

    All I really know about the MMS support is that I can pass these two filters "mms://" URLs and they will stream the content. Perhaps it's really MMS over HTTP or RTSP. That leads me to believe the WM SDK can do it, too.

    - LoopinFool
    Friday, January 08, 2010 6:50 PM