2010-10-28 100 views
0

我們的應用程序使用IGraphBuilder::RenderFile來構建過濾器圖。在Windows 7上,此應用程序可以平滑播放MPEG-PS視頻,但無法打開/播放MPEG-TS(傳輸流)視頻。 IGraphBuilder::RenderFile返回錯誤代碼VFW_E_UNSUPPORTED_STREAM如何在Windows 7上通過DirectShow播放MPEG-TS視頻?

在我的Windows 7上,Windows Media Player可以打開/播放這些MPEG-TS HDV視頻。

我的問題是:

  1. 是否有可能加載/由DirectShow的在Windows 7上播放MPEG-TS視頻,只有通過Windows 7的安裝過濾器?因爲我們最好不要讓用戶安裝一些第三方DirectShow過濾器。
  2. 如果不可能,是否有一些可以處理MPEG-TS HDV的流行編解碼器,並且最好也適用於DirectShow。

更多的細節我已經試過:

  • 我也嘗試過的GraphEdit在Windows SDK。它在打開這些MPEG-TS視頻時給出了同樣的錯誤。

  • 如果我添加了一個MPEG-TS視頻作爲File Source(Async),其輸出引腳標記爲Major Type: Stream, SubType: GUID_NULL,並且無法連接到其他濾鏡,如MPEG-2 Demultiplexer

  • 更沮喪,MSDNMPEG-2 Demultiplexer不解複用MPEG-2傳輸和節目流。

因此,我很可能錯過了一些東西。經過幾天的挖掘,現在我對這個問題非常絕望。任何建議,歡迎和讚賞。

感謝

回答

2

你之所以不能文件源(異步)連接到MPEG-2多路分離器,文件源拉模式操作和MPEG-2解複用只支持TS在推模式下。

Haali媒體分離器可以解複用MPEG-2 TS。如果你不想強制用戶安裝它,也許你可以編寫一個簡單的push型文件源過濾器,並手動將其插入到你的圖形中。

+0

感謝user434507。這解釋了很多。一個簡單的推式文件源正在吸引。我將嘗試找到一些關於如何編寫這樣的過濾器的例子或文檔。如果你知道的話,你可以發佈鏈接嗎? – fzhang 2010-10-29 01:53:37

+0

我發現「DVBPortal HDTV泵過濾器」http://www.dvbportal.de/projects/hdtvpump/index.html。將它用作源過濾器可以使MPEG-TS視頻可以被MPEG-2 Demux接受。 – fzhang 2010-10-29 03:43:00

+0

另一個問題。我假設Windows 7中的DirectShow沒有提供源碼過濾器,可以讀取MPEG-TS視頻並將其推出。我對嗎? – fzhang 2010-10-29 03:46:26