代码之家  ›  专栏  ›  技术社区  ›  Jeremy White

如何获得基于硬件的屏幕捕获?

  •  3
  • Jeremy White  · 技术社区  · 16 年前

    过去,我的一些项目要求我创建全屏Flash应用程序的电影版本。最简单的方法就是获取屏幕截图。然而,捕获超过1024x768的任何内容都会导致视频的起伏,这是不可接受的。我知道有一些基于硬件的解决方案可以捕获全屏视频,但我一直无法找到这些解决方案是什么。我的输出需要可扩展到1920x1080,并产生一个无起伏的未压缩AVI文件。

    7 回复  |  直到 16 年前
        1
  •  3
  •   Adam Davis    16 年前

    各种专业产品支持全高清拍摄:

    http://www.decklink.com/products/hd/

    http://www.aja.com/

    还有其他的。捕获完整的、未压缩的数字或模拟流是一项非常繁重的要求。

        2
  •  2
  •   Dark Shikari    16 年前

    如果它是交互式的,并且您绝对需要实时捕获,FRAPS实际上可能能够完成这项工作,至少在Vista上是这样,在Vista中,通过使用Aero作为图形层,操纵FRAPS录制各种非DirectShow应用程序通常并不难。

        3
  •  1
  •   rpetrich    16 年前

    如果将电影加载到Flash ActiveX控件中,则可以调用 IViewObject::Draw 方法(或 OleDraw 控件上的辅助函数),将其绘制为所选的DC,并循环动画中的每个帧。提取音频将更加困难,但如果您已经在内部制作了动画,那应该不会太麻烦。

        4
  •  0
  •   not-bob    16 年前
        5
  •  0
  •   Community CDub    4 年前

    但这不会给你1920x1080。

    难以置信的

    编辑:

    顺便说一句,如果你想以每秒30帧的速度拍摄1920x1080的真彩色图像,你必须以某种方式存储 每秒237兆字节 . 只是想让你知道你需要处理多少数据。。。

        6
  •  0
  •   grapefrukt    16 年前

    如果您不需要在电影中四处点击,Flash CS3支持逐帧导出Flash电影(包括脚本内容)。

    然后转到文件->出口->导出电影,然后选择Quicktime。根据您的喜好设置各种精细的位,然后Flash将以最快的速度逐步完成动画,从而避免掉帧和等待1fps捕获的风险。

        7
  •  0
  •       15 年前