Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2057514
  • 博文数量: 454
  • 博客积分: 10921
  • 博客等级: 上将
  • 技术积分: 5396
  • 用 户 组: 普通用户
  • 注册时间: 2006-06-15 15:20
个人简介

伪IT男

文章分类

全部博文(454)

文章存档

2016年(2)

2013年(6)

2012年(17)

2011年(29)

2010年(24)

2009年(54)

2008年(53)

2007年(202)

2006年(67)

分类: WINDOWS

2007-01-11 21:04:35

帮别人用vb写了一个使用mediaplay的播放小软件,想要在播放的时候截图的时候发现截图出来的结果都是黑的。自己单独用mediaplay试了一下,也是同样的结果。百思不得其解。搜索得到结论。使用 B:“ DirectDraw加速”禁用法 解决了问题。
 
 
 
在很多论坛的软硬区,经常有人问“为什么我截出来的图片一片黑,为什么我放的电影画面截到的图没有影像?”,隔三差五总有人问!虽然几乎每次都能得到满意的答案,但是方法众多啊,要选择适合自己的,最方便的,所以我这里做个总结!以后大家再问这个问题,翻翻这个帖子。事先声明,方法都是各位网友的智慧,我这里只是借花献佛,引用或者侵犯了你的版权可以通知我改正;另外,由于方法众多,我不可能一一列举,只能尽量搜集整理手边的资料了,这个帖子也不是最终正式版,α测试正在进行中.....还有,由于版本啊、操作系统、和软件的不同,所采取的方法和本文可能不尽相同,这个就需要大家开动智慧,举一反三了 :)(我的操作系统Winxp SP2,安装的解码器基本都是最新的)

大家拷贝屏幕无非两种方法,专门软件法和系统Print screen大法,专门软件比如HyperSnap-DX或者SnagIt,此类软件功能强大,控制方便!

但是很多人就是习惯于用Print screen(ALT +Print screen捕捉窗口)在操作系统截图,原因吗?无非是方便,节省资源!

至于为什么普通Print screen不能把影像截下,应该是机器硬件方面的问题(反正不是什么简单DX加速的原因),我就不献拙了,下面我对各种方法进行一下介绍:

A:,专用软件
HyperSnap-DX的设置。(V5.10.00)
VCD、DVD及播放影像文件显示的图像很特殊,使用PrintScreen键把它复制到剪贴板后,再通过画图程序打开保存后会发现它是红色的,无法抓取。不过,选中“捕捉”→“启用特殊捕捉(Directx,Glide,DVD...) ”选项,并在弹出的设置框中选中所有选项,以后只要按下Scroll Lock键就可以抓取到VCD、DVD或影像文件显示的图像了(为了方便起见“选项”-“激活快捷键”请选上)





抓屏结果





另一个视频影像的截取者SnagIt。(V6.2)

设置:
1、启动SnagIt 6。
2、选择菜单“输入”,选中“高级”》“DirectX”。
3、与HyperSnap-DX一样,你必须按Scroll Lock键截取影像。






如上设置后,单独的播放画面都可以拷贝了

抓屏结果,可以和HyperSnap-DX比较一下画面





B:“ DirectDraw加速”禁用法

“开始”-“运行”,输入“dxdiag”,“显示”-“DirectDraw加速”选“禁用”






这样的话.播放窗口和屏幕其他地方已经一样,用HyperSnap-DX(SnagIt)或者PrintScreen可以任意捕捉(不过显示效果有些差了,而现在的游戏是必须用DX加速的),大家可以比较一下(注意,此时实际拷贝可以包括框架,也可以自选区域)






如果显卡硬件加速在驱动程序有选项,也可以在这里关,以我的TNT2为例,右键桌面-属性-设置-高级-疑难解答-硬件加速 选“无”,确定即可!(也许向“无”推几个格也许就可以拷屏了)




类似技巧(对播放器自己播放文件起作用)
Mediaplay:“工具”-选项-视频加速-把调杆放到中间或者“无”





Realone
工具-首选项-硬件-视频卡兼容型-把调杆放到中间或者“最可K”





C:双播放器法

想截Mediaplay播放文件画面的,就先用realone放个文件,然后用HyperSnap-DX(SnagIt)或者PrintScreen可以任意捕捉

同理,想截realone播放文件画面的,就先用Mediaplay放个文件,然后用HyperSnap-DX(SnagIt)或者PrintScreen可以任意捕捉

总而言之,开两个视频播放窗口,后面的播放窗口(实际拷贝可以包括框架,也可以自选区域)就可以拷贝屏幕了(ROR gavotte:第一个播放窗口系统缺省用 Overlay 方式。 第二个窗口由于 Overlay 被占用,用 DirectX 的 VMR方式或者软件方式播放。 对于有些显卡同时支持多个Overlay,必须到第4-5个窗口(占用所有overlay)才能用PrintScr截图。 用DirectX(VMR7/VMR9)的都能用PrintScr截图,不能截图的是用覆盖Overlay。VMR永远可以用PrintScr截图!)

举例子:如图











先启动的播放器图像都是黑的,当然我们在真正拷屏时候,这些窗口我们都会隐藏他们或者放到不碍事的地方!

D:播放器拷屏法:(一类的软件只举一个例子)
1,BSplay
BSPlayer也是一款Windows下虽然外表朴素但音质出色的播放器,它支持所有流行的音乐格式(avi/mpg/asf/wmv/wav/mp3...),适用于所有windows系列操作系统。








播放之后可以在播放画面上点右键-截取画面-选择大小
(注意:安装Real Media Splitter后同样可以放RM和RMVB)

2。Windvd(播放DVD推荐使用,普通文件不行,其实powerdvd功能更强大,配合Real Media Splitter还可以截取RM文件影像)

WinDVD是一款功能强大的DVD播放器。它组合了多种标准消费型DVD播放器的功能,例如,全面支持VCD 2.0、精确解码、可选用户界面以及视频显示选项。您可以播放 DVD 光盘或 VCD - WinDVD 会自动确定DVD驱动器中的光盘类型并使用正确的播放方式。每一种 DVD(数字化视频光盘或数字化多用途光盘)均由 DVD 作者设计。




播放之后可以在播放画面上点右键-书签/捕获-捕获图像





3,“国货精品”超级解霸
其面板上有一个相机按钮可快速摄取视频影像,不过令人遗憾的是,画面质量不太令人满意。呵呵,反正我不用,图片是抄来的





E:其他方法

1,rm(rmvb)99%拷贝法

播放时把画面大小调整到99%;揿PrintScreen;打开画图;粘贴;切除;另存为JPG 或者,把画面调整到99%用HyperSnap,捕捉(注意,此时实际拷贝可以包括框架,也可以自选区域)






2,精确定位法:(借助编辑软件)

VirtualDub
虽然VirtualDub是一套免费的多媒体剪辑软件,但它的功能可一点也不输给Premiere以及Media Studio等专业等级产品的功能。在VirtualDub中主要的功能可以区分为两大部份,一是可以让您针对现有的电影短片文件如。AVI以及。MPG等做编辑的工作,另一项则是可以搭配您的影像

补捉卡做即时的动态影像捕捉的功能。



VirtualDub 打开流文件,然后选那帧你需要的画面(按着shift找关键帧或者 Shift + 右(或左)键来定位),然后 Print screen 或者HyperSnap就可以捕捉任意一处地方了(不需要采取什么特殊措施)






Helix RealMedia Editor 9
Helix Real媒体编辑器9.0 汉化版,可以编辑RM以及RMVB,这是最新版本的 RM 编辑软件,是Helix Producer Plus 9.0.1里自带的版本,直接解压到任一目录下,即可使用(rmedtgui.exe)。




RealMedia Editor打开文件,用 <<或者>>按键(或者菜单)来确定帧,然后 Print screen 或者HyperSnap就可以捕捉任意一处地方了(不需要采取什么特殊措施)






呵呵,我发现RealMedia Editor在双播放器法中可以充当播放器作用,VrtualDub不行

关键帧和预测帧
电影实际上是一帧帧的画面, 按30帧/秒(24帧/秒)的速度播放. 由于人的视觉暂留, 我们看起来就成了连续的电影. 电影的画面总帧数是很大的, 如果我们把每帧画面都记录下来, 所需的数据量将会很大.

由于每两帧画面的间隔只有33毫秒, 因此, 前后两帧画面的差异一般来说很小. 所以, 我们可以只完整记录前一帧画面, 对后一帧画面只记录它和前一帧的差异, 这样, 将会大大减少所需的数据量. 回放时, 用前一帧画面及记录的后一帧的差异, 完全可以复原后一帧画面.

-完整记录的前一帧”就是关键帧(I帧), 只记录差异的就是预测帧(P帧/B帧),其实拷屏最好选关键帧,不过如上例子不选也能拷贝屏幕!

3,传说中的办法

1,FFDshow办法(对mediaplay,这个是传说中的方法,反正在我的系统上“马上截图”的按钮永远是暗的,即使我关闭了其他编码,确实是ffdshow解码器起作用)

有人成功过:如图






还有一个所谓超级拷屏键的方法,不过我也没有试验成功!原文如下:

确实,对于一些使用 DirectX的游戏很难抓下图来(过场动画就更别提了),实际上,我们只要在“媒体播放机”中稍稍一改即可(似乎风马牛不相及,但事实证明是可行的),win98自带的版本太低,需要6.0版及其以上版本的,就是“微软”白送的那个,好多地方都可以找到。 一般都在 98以上系统一般是6.4版,都在 Program Files\Windows Media Player 目录下,为mplayer2.exe的名字

用“mplayer2”打开一个视频文件,进入File(文件)中的Properties(属性),选Advanced(高级),双击Video Renderer(视频渲染),
在DirectDraw中把YUV Flipping、RGB Flipping、YUV Overlays、RGB Overlays四个选项的钩钩都去掉,确定后退出。好了,现在您的Print

Screen是无敌于天下的,甭管游戏画面还是CG动画,反正是爱抓哪儿抓哪儿。顺便说一句,在“媒体播放机”的View(观察)Options (选项)/Advanced(高级的)选项卡中,点击Change(更改),将 Buffer(缓冲)从10改为30,可以使“媒体播放机”播放大画面Avi流畅的多。

这个我XP中,DirectDraw没有YUV Flipping、RGB Flipping、YUV Overlays、RGB Overlays四个选项,可能因为我的RPWT。

当然你可以用happyshow 暴风影音等流行的播放器来截图!~
阅读(1622) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~