Multimedia dedicated weblog.

MONOGRAM YUV Source v1.0.0.1

December 17th, 2007 Posted in Uncategorized

Yesterday I’ve published a filter that can generate YUV sequences from input video. Now there is a simple filter that can read those raw video sequences and deliver them downstream. This filter is, again, useful mostly as a support tool when testing or comparing video codecs.


  • Support for 4:2:0, 4:2:2, 4:4:4 planar formats
  • Customizable video resolution
  • Customizable timing
  • Seeking just as in any other container format
  • Output in YV12 and YUY2 formats
  • Preview window to verify parameters

YUV Source


Exactly as with the filter before, you can use this filter freely for non-commercial use.


Download binary : (130 KB)




  1. 16 Responses to “MONOGRAM YUV Source v1.0.0.1”

  2. By Saurabh on Oct 11, 2008

    Dear all,
    I downloaded the file and tried to register it with WinXp SP2 OS but gives error.
    Please tell me what’s the problem

  3. By Igor Janos on Oct 11, 2008

    Try installing this : SP1 Redistributable pack

  4. By Saurabh on Oct 13, 2008

    Thanks for the reply.
    After installing SP1 Redistributable pack its working fine….

    Thanks once again

  5. By Joe Plumber on Oct 27, 2008

    the video output instead of rander on the screen I would like to dump to a file?

    do you think this filter will help? any suggestion

  6. By Igor Janos on Oct 28, 2008

    Not really. You would need a YUV writer filter.

  7. By Don Gin on Nov 22, 2008

    So, this filter acquires YUV sequences from all kinds of formatted videos? Then it passes the raw video data stream down in the graph?

    I can not see how it can be “…as a support tool when testing or comparing video codecs”?

    Just try to know the cases we can use this filter.

  8. By David on May 19, 2009

    Hi Igor I am trying to write my own Decoder filter . Regrading the output YV12 format to be connected to the video, I dont seem to be able to display to the video renderer correctly. However,I am able to connect to your h264 encoder ->ffdshow video decoder-> video renderer and display correctly.

    This is just to check if my yv12 output is correct.

    So I have a couple of questions.

    1)I observed that your YUV source filter(YV12 output) width changes size when you connect to a video render and remains unchanged when connected to your encoder. What is the rational to this?

    2)How do i go about implementing dynamic format change,resizing? i.e. like when if I only know the width and height after I have done decoding one frame , or like in this case your YUV source filter will do resize when connected to a video render.

    Need some help to point me to the right direction again.


  9. By Igor Janos on May 19, 2009


    1) This change is initiated by the Video Renderer filter. The point of the format change is to optimize the rendering operation. When the connection is made the original mediatype is negotiated as to suit the actual video itself - buffer size is derived as width x height x bits_per_pixel .. etc. However once the streaming starts the video renderer might need a different alignment - one that would fit the dimensions of video texture it is using so the upstream filter could be delivering data to the video texture directly instead of performing additional copy.

    2) To implement this you must check for IMediaSample::GetMediaType each time you want to write something to it. If no change has happened, the IMediaSample::GetMediaType will NOT return S_OK. If there is a change, you must call your filter’s SetMediaType again to accept the new format and deliver new data accordingly.

    There is also a nice article in the MSDN about dynamic format changes.


  10. By Jeff Wen on May 20, 2009


    your filter is working fine. But is there anyway i can change the resolution to such as 1680×1056, there isnot such option in the resolution dorpdown box?


  11. By Jeff Wen on May 20, 2009

    Hi Igor,

    and is there anyway to change fps to 120?


  12. By Igor Janos on May 20, 2009

    Yes, it is possible to change the resolution. You can manually overwrite the values in the dropdown boxes. Once you’ve set them, press the property page “Apply” button.

    No, it is not possible to set 120 fps.

  13. By Jeff Wen on May 20, 2009

    Hi Igor,

    thanks for your reply. yes, i can now change to any resolution i want. It is a pity that the fps can’t be changed to above 100.

    but thanks anyway.


  14. By Blanche on May 26, 2009

    Hi Igor,
    I write a source filter that can read yuv sequence by myself, but it has something wrong. When displaying, it is full of green, and when debuging, it can show the right video, but still has the green background. When debuging, it can’t go into the source filter constructor. So, could you give me some advice, thank you.

  15. By Hxc on Jun 1, 2009

    I’m new to directshow while tring to write a source filter to play *.yuv files.
    I’ve almost done the work,but got no idea of defining formattype of MEDIASUBTYPE_YV12,so the source filter and render filter just coundn’t agree on the media type.
    would you show me some of the details on media type defining?

  16. By Ed on Nov 20, 2009

    Could you provide the interface definition to the YUV source such that I can integrate this into a directshow program?
    p.s. Thanks for all the work you put into this site, it has really helped me come up to speed on DirectShow.

  17. By GDX from China on Nov 30, 2009


    May I have a verson of the sourcefiler,which can be fitted to YUV files in 1920*1024?

    I will be very grateful,Thanks!

Post a Comment