用C++截屏时ActiveX视频控件显示黑屏的问题

ALCAT 2011-09-06 09:33:31
问题是这样的:
在MFC中插入一个ActiveX视频控件,用来监控远程摄像头。
现在想捕获控件中显示的视频流,获取一帧一帧的图像然后进行分析。

当前的做法是进行简单的截屏,得到的位图在内存中进行分析。
但是用GDI做的时候,捕获到的控件位置是黑色的。
查了相关资料之后发现,在降低图形硬件的硬件加速级别时才可以捕获到这些图像,避免黑屏的情况。
但是这样的话,图像的分辨率明显下降。

只能想办法在不降低硬件加速级别的情况下捕获到这些视频帧。
如果能直接捕获到视频帧更好。
不知道高人对此有什么想法,或者好的建议?
问题解答一定追分,谢谢。
...全文
355 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
rageliu 2011-09-07
  • 打赏
  • 举报
回复
这个的话,ddraw和d3d都做处理,是最保险的.
因为是dshow框架,render不同就会不同.
当然,最好是gdi都做处理
zhouzhipen 2011-09-07
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 wwwgeyang777 的回复:]
真是感谢,不过那个控件是封装起来的,根本查不到是用什么做的。
[/Quote]
这个简单啊,只要看它调用了那些DLL就行了。
工具嘛,用DEPENDS就可以。
ALCAT 2011-09-07
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 zhouzhipen 的回复:]

引用 5 楼 wwwgeyang777 的回复:
引用 4 楼 rageliu 的回复:

这个问题,我讲过了,可以用hook.
大体方式有:
1.hook ddraw和d3d
2.hook dshow
...

这些方式都可以解决这个问题


呵呵,刚入手这个东西,还什么都不懂呢。
有简单的参考代码吗?
我之前下了一个hook的例子,但是截屏的时候,在视频控件的地方……
[/Quote]

真是感谢,不过那个控件是封装起来的,根本查不到是用什么做的。
ALCAT 2011-09-07
  • 打赏
  • 举报
回复
感谢各位的帮助,现在知道该怎么进行了。慢慢摸索吧!
ALCAT 2011-09-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zhouzhipen 的回复:]

为什么要截屏,你都把视频流显示出来了,难道在显示之前不能转存?
[/Quote]

是的,那个是一个提供的二次开发的控件,我得不到具体的视频流。
zhouzhipen 2011-09-06
  • 打赏
  • 举报
回复
为什么要截屏,你都把视频流显示出来了,难道在显示之前不能转存?
zhouzhipen 2011-09-06
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wwwgeyang777 的回复:]
引用 4 楼 rageliu 的回复:

这个问题,我讲过了,可以用hook.
大体方式有:
1.hook ddraw和d3d
2.hook dshow
...

这些方式都可以解决这个问题


呵呵,刚入手这个东西,还什么都不懂呢。
有简单的参考代码吗?
我之前下了一个hook的例子,但是截屏的时候,在视频控件的地方还是黑色的。
[/Quote]

不知道你HOOK了什么东西?你先看看这个控件是用什么做的?
ddraw、d3d、dshow?

只要HOOK其中对应的显示函数就行了
ALCAT 2011-09-06
  • 打赏
  • 举报
回复
加分了,各位帮帮忙啊!
ALCAT 2011-09-06
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 rageliu 的回复:]

这个问题,我讲过了,可以用hook.
大体方式有:
1.hook ddraw和d3d
2.hook dshow
...

这些方式都可以解决这个问题
[/Quote]

呵呵,刚入手这个东西,还什么都不懂呢。
有简单的参考代码吗?
我之前下了一个hook的例子,但是截屏的时候,在视频控件的地方还是黑色的。
rageliu 2011-09-06
  • 打赏
  • 举报
回复
这个问题,我讲过了,可以用hook.
大体方式有:
1.hook ddraw和d3d
2.hook dshow
...

这些方式都可以解决这个问题
dengzikun 2011-09-06
  • 打赏
  • 举报
回复

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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