我需要截取游戏中交易过程,要求在两分钟内生成的文件大小不要超过2M(上传用)。我目前是根据鼠标点击截图并生成avi文件,使用div3(mpeg 4 low-motion)编、解码,产生的文件每帧约10k(1024 * 768 * 24bits)。(使用定时器的话会截取到许多无用信息帧,导致生成的文件过大,不利于上传)。
但是单纯根据鼠标点击截取的图像里缺少很多关键信息,比如物品的属性,物品的移动过程,这些信息都是与鼠标相关的。物品的移动需要鼠标的点击、移动与停止判断,物品属性的显示需要鼠标的悬停判断,同时又要过滤用户无用的鼠标点击、移动、停止信息,请问如何判断?同时要保证取得的帧尽可能少,且是关键信息。
哪位朋友帮忙提些建议,谢谢。

解决方案 »

  1.   

    MPEG绝对不适合你的目的
    它是基于关键帧[key frame]的一个叠加
    而你要的东西有时候是完全不一样的
    MPEG的大小一样会很大其实我感觉你只要用JPG就可以解决问题的
    有一个非常实用的办法解决就是把彩色变成灰度图,甚至可以考虑变成黑白的,字的信息基本不会丢失
    再把图从1024*768压到800*600,数字和文字应该是没有什么大问题的
    这样应该可以的May you succeed!
      

  2.   

    谢谢nonocast(如果没有如果) 的回答,但是游戏交易过程大部分情况下应该是在一个相对静止的场景进行的,重要的是物品移动过程及物品属性的查看,因为这个过程的录像是用来做交易证据的,(上传到网站)。如果用jpg的话,查看起来不方便(因为要录的是一个过程,需要很多帧),上传起来不方便(用户需要自己打包上传),而且单独一张jpg的大小比视频文件的一帧大许多,在1024*768*24情况下,抓简单的桌面,div3平均每帧10k,jpg一张就30多k,另外颜色位数的减少将使游戏交易过程的录像的可看性变差,图像尺寸压缩也将使属性显示变模糊,导致无法核实。
    另外,一般游戏中的物品显示的属性是否是在一个窗口对象中,如果是有否方法得到这个窗口对象的句柄?
    再次谢谢nonocast(如果没有如果) 。
      

  3.   

    不是外挂,是录像取证用的。starcraft和diablo(都是8位色)里的抓屏问题,我抓下来都是花屏的(有轮廓,但是颜色错乱)
    其他游戏都是好的,diablo的窗口模式下也是好的,
    这个怎么解决