Windows Media Foundation Team Blog

This blog is written by the Media Foundation team at Microsoft. It will provide in-depth information about Media Foundation programming, to help you get started with Media Foundation in your own applications. This blog also gives us a way to get feedback from the developer community, so that we can keep improving Media Foundation in future releases.

As our initial effort, we are releasing a suite of Media Foundation samples and tools.

The samples will demonstrate:

· How to transcode from one video format to another.

· How to dump a media file properties.                   

· How to render video frames onto a Direct3D 11 surface.

· How to program Media Foundation using C#.

Also, we will present a tool that combines playback, scrubbing, effects, archiving, and transcoding into a single application.

We plan to post a new sample about once every two weeks, for the next three months. For each sample, we’ll describe how the sample works and which APIs are used. You can use this blog as a handy tutorial book, so that you can jump into Media Foundation programming immediately.

You can find the official Media Foundation SDK documentation here:

This posting is provided "AS IS" with no warranties and confers no rights.

Comments (9)

  1. Miha Markic says:

    I’d like to see two .net samples if possible:

    – play video to a DirectX (and XNA) texture. So I can use the texture for whatever I am doing.

    – how to encode video from the DirectX/XNA textures

    – play video from .net stream

    As for general, I’d really like to see more .net support, not just wrappers.

  2. bl0rq says:

    I second that re: .net support.  It seems very silly to not have a managed version at this stage of the game.

  3. Nobby says:

    I’ve been using MF for about four months now under Windows 7 and have been really pleased with its performance and functionality. I usually use C# for commercial development though as it suits my business model so I am keen to be more informed about a managed operation environment for MF. In particular:

    -The asynchronous ‘Pull’ programming model in a managed media pipeline. GC vs reference lifetime tracking.

    -How media pipelines and media sessions are affected by managed custom media sources

    -Non-performance based penalties and restrictions incurred by adopting the managed MF API over unmanaged.

    -Managed pipeline objects: Interfaces obtained via casting a reference vs interface query via unmanaged pointer. Direct correlation between programming models/API engine operation?

    -Hardware decoders/encoders? DirectX via .Net 1.1 or unmanaged DirectX 9/10/11 wrappers?

  4. Anand says:

                           I am completely newbie to Media Foundation. I studied some basics of Media Foundation, I studied about Media Sources and Presentation Descriptors. There explained as, we can activate and deactivate required streams in a media session when we required. By this I raised with an idea…

           My idea goes like this, if I am receiving 10 input video streams from a network and I am displaying to a end user in ten different windows. Is it possible to stop video playback of some of those streams and to reactivate those streams when we required back to view.

           I don't know in reality it will be possible using Media Foundation or not. If it is possible I will try to learn in depth about Media Foundation. If it possible try to develop a sample for this.

  5. Alan says:

    Can you please release the "How to render video frames onto a Direct3D 11 surface" tutorial! Please! Please! Please!

  6. wangwei says:

    Can you please give me a sample of transcode one file to streaming(such as http streaming)?please!

  7. How can we implement

    1) VIdeo Capture->Effect->Preview

    2) VideoCapture->Effect->Enocde

    both together using Media Foundation

  8. Vahid says:

    These all sound good, but where are the tutorials?! I'm looking for " How to render video frames onto a Direct3D 11 surface."

  9. Noise Figure says:

    Awesome post. Thanks for sharing………

Skip to main content