簡體   English   中英

免費 DirectShow 直播 stream 源過濾器

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM