我們的應用程序使用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視頻。
我的問題是:
- 是否有可能加載/由DirectShow的在Windows 7上播放MPEG-TS視頻,只有通過Windows 7的安裝過濾器?因爲我們最好不要讓用戶安裝一些第三方DirectShow過濾器。
- 如果不可能,是否有一些可以處理MPEG-TS HDV的流行編解碼器,並且最好也適用於DirectShow。
更多的細節我已經試過:
我也嘗試過的GraphEdit在Windows SDK。它在打開這些MPEG-TS視頻時給出了同樣的錯誤。
如果我添加了一個MPEG-TS視頻作爲
File Source(Async)
,其輸出引腳標記爲Major Type: Stream, SubType: GUID_NULL
,並且無法連接到其他濾鏡,如MPEG-2 Demultiplexer
。更沮喪,MSDN說
MPEG-2 Demultiplexer
不解複用MPEG-2傳輸和節目流。
因此,我很可能錯過了一些東西。經過幾天的挖掘,現在我對這個問題非常絕望。任何建議,歡迎和讚賞。
感謝
範
感謝user434507。這解釋了很多。一個簡單的推式文件源正在吸引。我將嘗試找到一些關於如何編寫這樣的過濾器的例子或文檔。如果你知道的話,你可以發佈鏈接嗎? – fzhang 2010-10-29 01:53:37
我發現「DVBPortal HDTV泵過濾器」http://www.dvbportal.de/projects/hdtvpump/index.html。將它用作源過濾器可以使MPEG-TS視頻可以被MPEG-2 Demux接受。 – fzhang 2010-10-29 03:43:00
另一個問題。我假設Windows 7中的DirectShow沒有提供源碼過濾器,可以讀取MPEG-TS視頻並將其推出。我對嗎? – fzhang 2010-10-29 03:46:26