directX截屏的问题

一曲肝肠断 2011-03-17 06:02:20
最新版本QQ的截图还有两个功能:捕捉视频图像,录制视频动画
我现在想知道这两个功能是怎么实现的,是用directX吗?
但是我用的暴风影音播放的视频,截取出来的也是黑屏的,不知道为什么。

路过的高手们救救我吧,我就想知道他们怎么实现的。

附加:一般的截屏还有网上的directX截屏我都看了,但是和QQ好像都不一样。
...全文
261 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
一曲肝肠断 2011-03-18
  • 打赏
  • 举报
回复
谢谢楼上大哥,directX我不太懂,现在想研究directX下截屏的方式,怎么能截取到不黑屏的那种,
还有,QQ的获取视频功能,我怎么样才能hook到,com hook 的话,hook哪个啊,
辰岡墨竹 2011-03-18
  • 打赏
  • 举报
回复
不,应该不是显示到屏幕上之后再截取的。QQ影音应该是基于DirectShow的,在DirectShow里只要添加一个自定义的Render里,在那个Render里就能得到要显示的图像。而暴风自己也是DirectShow的,但是它已经把视频输出到了WMV7/9的Render,这个QQ自然截不到,它只能截取自己的程序的视频,对于其它程序还是用Bitblt的方法。
一曲肝肠断 2011-03-18
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 rageliu 的回复:]

使用了硬件加速的方式,播放器里也就是overlay覆盖filter。vlc的话,应该是ddraw的overlay。这些都是普通方式截不到的。
需要com hook来截
[/Quote]
谢谢,应该hook那些函数呢?我看了QQ引用的dll,好像和directx有关的只有ddraw.dll和ddrawex.dll两个。
rageliu 2011-03-18
  • 打赏
  • 举报
回复
使用了硬件加速的方式,播放器里也就是overlay覆盖filter。vlc的话,应该是ddraw的overlay。这些都是普通方式截不到的。
需要com hook来截
一曲肝肠断 2011-03-18
  • 打赏
  • 举报
回复
谢谢楼上几位大哥们关注,等高手出现
另外,我用directx方式截屏,暴风影音截取的也是黑的,除非把硬件加速关闭,
不知道是我的方法不对,还是别的原因。QQ获取视频图像截取的也是黑的,
有一点我能确定,QQ的获取视频图像功能绝对不是gdi方式的截屏(就是getdc等方式)
一曲肝肠断 2011-03-18
  • 打赏
  • 举报
回复
算了,结贴了,慢慢研究吧,谢谢楼上各位!
jamseyang 2011-03-17
  • 打赏
  • 举报
回复
我也很想知道,Mark下
healer_kx 2011-03-17
  • 打赏
  • 举报
回复
普通截屏是基于GDI的,但是解不了Dx的。
zhaoqiankitty 2011-03-17
  • 打赏
  • 举报
回复
同问,用VLC播放视频,截屏也是黑的,哪位大侠给讲讲这是为什么呢?

19,469

社区成员

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

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