[英]Free DirectShow live stream source filter
我有一個 DirectShow 圖,包含文件源過濾器、拆分器過濾器、視頻和音頻解碼器以及渲染器。 (數據可能是加密的,因此拆分器只是將其拆分為視頻和音頻,解碼器實際上解密了數據)。
現在,我想更改圖表以使用實時流而不是文件作為源。 是否有免費(首選開源)這樣的源過濾器?
謝謝你。
如果通過實時流您的意思是 Windows 媒體超過 HTTP,您可以試試這個:
首先為 CLSID_NetShowSource 定義一個 GUID,類似於
#include <initguid.h>
DEFINE_GUID(CLSID_NetShowSource,
0x6b6d0800, 0x9ada, 0x11d0, 0xa5, 0x20, 0x0, 0xa0, 0xd1, 0x1, 0x29, 0xc0);
然后你可以按如下方式使用它:
IBaseFilter* wmsrc;
//create a basefilter instance from the GUID
hr = CoCreateInstance(CLSID_NetShowSource, NULL, CLSCTX_INPROC_SERVER, IID_IBaseFilter, (void**)&wmsrc);
if(!FAILED(hr))
{
IFileSourceFilter* fsf;
//get us a file source filter, this can read from urls
wmsrc->QueryInterface(IID_IFileSourceFilter, (void**)&fsf);
if(fsf)
{
//wFilename is a widechar string containing the stream url
hr = fsf->Load(wFilename, NULL);
if(!FAILED(hr))
{
//at this point you can do as you wish with the filter
}
}
}
自從我實現這個以來已經有一段時間了,我希望它會有所幫助。 我很確定這個片段缺少一些錯誤檢查。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.