使用dshow设置setnumberofstreams后视频显示看不清

Ilson_ 2017-11-27 11:10:58
我想在使用dshow显示视频的同时在视频上添加东西(一些线条、矩形、圆、弧等),网上看了一些资料发现可以用IVMRMixerBitmap::SetAlphaBitmap()函数设置,但是前提是必须加上IVMRFilterConfig::SetNumberOfStreams()去设置流的数量因为视频是一个流你所添加的东西又是另一个流,如果你没有加上设置流数量的代码 hr = SetAlphaBitmap()永远设置不成功。但是加上设置流数量函数SetNumberOfStreams()时,可以是可以添加东西上去了但是视频本身却看不清了,不知道为什么

这是设置流之前的视频

这是添加了设置流函数的视频

以下是某一部分的代码
1.
//设置无窗口渲染模式
IVMRFilterConfig *pConfig = NULL;
hr = pBFilter->QueryInterface(IID_IVMRFilterConfig, (void **)&pConfig);
if (SUCCEEDED(hr))
{
// Set two streams - video and alpha-blended bitmap
//必须要设置两个2数量否则视频流与自己的图片不能相结合显示
pConfig->SetNumberOfStreams(2);
pConfig->SetRenderingMode(VMRMode_Windowless);
pConfig->SetRenderingPrefs(RenderPrefs_AllowOverlays);
MRELEASE(pConfig);
}

//设置传入的窗口为显示窗口
hr = pBFilter->QueryInterface(IID_IVMRWindowlessControl, (void **)&m_pVMRWCtrl);
if (SUCCEEDED(hr))
{
m_pVMRWCtrl->SetVideoClippingWindow(hWnd);
m_pVMRWCtrl->SetBorderColor(RGB(0, 0, 0));
}
2.
hr = m_pVMRMBitmap->SetAlphaBitmap(pVbi);
hr = m_pMediaCtrl->Run();
...全文
205 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ilson_ 2017-12-06
  • 打赏
  • 举报
回复
以前是用这种方式

IPin *pOutPin = NULL;
hr = FindPin(m_pSrcFilter, PINDIR_OUTPUT, &pOutPin);
m_pGraph->Render(pOutPin);

//m_pSrcFilter是枚举出来的视频设备
只接了视频源到m_pGraph 现在改为

HRESULT hr = CoCreateInstance(CLSID_VideoMixingRenderer9, NULL,
		CLSCTX_INPROC, IID_IBaseFilter, (void **)&m_pVMRender);
if (FAILED(hr)) return hr;

hr = CoCreateInstance(CLSID_SampleGrabber, NULL, CLSCTX_INPROC_SERVER,
		IID_PPV_ARGS(&m_pGrabberFilter));
if (FAILED(hr)) return hr;

hr = m_pGraph->AddFilter(m_pGrabberFilter, L"Sample Grabber");
if (FAILED(hr)) return hr;
hr = m_pGrabberFilter->QueryInterface(IID_PPV_ARGS(&m_pSGrabber));
if (FAILED(hr)) return hr;

hr = ConnectFilters(m_pGraph, m_pSrcFilter, m_pGrabberFilter);
hr = ConnectFilters(m_pGraph, m_pGrabberFilter, m_pVMRender);
//先把m_pSrcFilter接到m_pGrabberFilter,再从m_pGrabberFilter接到m_pVMRender就行了
Ilson_ 2017-11-28
  • 打赏
  • 举报
回复
是我相机问题换一个相机就可以了,以前那个不支持
内容概要:本文详细探讨了机组组合优化模型的构建,旨在通过合理安排各类发电机组的启停计划和优化出力分配,实现电力系统在经济性和稳定性上的最佳平衡。文章首先介绍了电力系统的四大主要组件——传统火电机组、风电机组、光伏机组和储能系统的参数及运行特性。接着,围绕最小化系统总运行成本这一目标,设计了优化目标函数,并明确了包括功率平衡约束、机组出力上下限约束、风光发电功率约束、弃风弃光约束、爬坡速率约束、储能系统荷电状态约束、充放电功率约束和充放电互斥约束在内的多项约束条件。最后,文章列出了求解机组组合优化模型所需的关键变量,如传统机组的开停状态、机组出力、启停成本、风电光伏实际出力、弃风弃光比例及储能系统的充放电功率和荷电状态,以实现系统的经济调度和可再生能源的最大化利用。 适合人群:从事电力系统研究、规划和调度工作的工程师和技术人员,以及对电力系统优化感兴趣的科研人员。 使用场景及目标:①帮助电力系统工程师理解不同类型发电机组的特点及其对系统稳定性、经济性和环保性的影响;②为制定合理的电力系统调度策略提供理论依据和技术支持;③促进可再生能源的有效整合,提高电力系统的灵活性和可靠性。 其他说明:本文提供的模型和方法不仅适用于当前的电力系统,也可为未来含高比例可再生能源接入的电力系统提供参考。文中涉及的具体数学公式和参数设定为实际应用提供了详细的指导,有助于提升电力系统的运行效率和经济效益。

65,186

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧