title: How to play MPEG-TS videos by DirectShow on Windows 7?
body: <p>Our application uses <code>IGraphBuilder::RenderFile</code> to build filter graph. On Windows 7, this application can play MPEG-PS videos smoothly, but it cannot open/play MPEG-TS(transport stream) videos. <code>IGraphBuilder::RenderFile</code> returns an error code <code>VFW_E_UNSUPPORTED_STREAM</code>.</p>
  
  <p>On my Windows 7, Windows Media Player can open/play those MPEG-TS HDV videos.</p>
  
  <p>My questions are:</p>
  
  <ol>
  <li>Is it possible to load/play MPEG-TS videos by DirectShow on Windows 7, with only filters installed by Windows 7? Because it is best for us not to ask users to install some third-party DirectShow filters.</li>
  <li>If it is impossible, is there some popular codecs that can handle MPEG-TS HDV, and also fit in DirectShow at best.</li>
  </ol>
  
  <p>Some more details I've tried:</p>
  
  <ul>
  <li><p>I also tried GraphEdit in Windows SDK. It gave the same error when opening those MPEG-TS videos.</p></li>
  <li><p>If I added one MPEG-TS video as a <code>File Source(Async)</code>, its output pin was marked as <code>Major Type: Stream, SubType: GUID_NULL</code>, and cannot be connected to other filters, such as <code>MPEG-2 Demultiplexer</code>.</p></li>
  <li><p>More frustrated, <a href="http://msdn.microsoft.com/en-us/library/dd390715%28VS.85%29.aspx" rel="nofollow">MSDN</a> says <code>MPEG-2 Demultiplexer</code> does demultiplex both of MPEG-2 transport and program streams.</p></li>
  </ul>
  
  <p>So, it is very likely that I missed something. After days of digging, I am now very desperate on this problem now. Any advices are welcome and appreciated.</p>
  
  <p>Thanks</p>
  
  <p>Fan</p>