免费的DirectShow直播流源过滤器
Free DirectShow live stream source filter
我有一个DirectShow图形,包含文件源过滤器,分离器过滤器,视频和音频解码器和渲染器。(数据可能是加密的,所以分配器只是把它分成视频和音频,解码器实际上是解密数据)。
现在,我想改变图形工作与实时流,而不是文件作为源。是否有一个免费的(首选开源的)这样的源过滤器?
谢谢。
如果你指的是HTTP上的Windows Media,你可以试试这个:
首先为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
}
}
}
自从我实现这个已经有一段时间了,我希望它对你有帮助。我很确定这个片段缺少一些错误检查。
相关文章:
- 带过滤器的现代迭代c++集合
- 如何将字符串添加到布谷鸟过滤器?
- 节目练习直播C++
- 在事件过滤器之前发出对象的事件
- C++对开销较少的容器使用多个过滤器
- CBasePin 递增对拥有过滤器的引用.循环引用?
- Qt:事件过滤器在显示 QCompleter 时不接收按键
- 使用 Vivek 的 Vcam / 捕获源过滤器构建/链接错误
- Qt 中的去抖动事件过滤器
- QT 事件过滤器 mouseEvent->pos().x() 始终为零,但 mouseEvent->pos().y() 工作正常
- 如何使用C++获取/设置OBS中的垂直滚动过滤器属性?
- ZeroMQ (cppzmq) 订阅者,过滤器以相同的字符串开头
- 有没有办法查询邮件过滤器是否已经生效?
- 使用指针使用过滤器重写字符数组
- 如何优化此侵蚀过滤器代码?
- 编译自己的 FFMPEG 过滤器
- 显式检查提升::日志过滤器?
- C++编译新的警告过滤器
- 我们无法在 Windows 10 中设置自定义密码过滤器
- 免费的DirectShow直播流源过滤器