V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
nowheretoseek
V2EX  ›  问与答

软件如何实现自我录制?

  •  
  •   nowheretoseek · 2018-10-22 09:39:50 +08:00 · 1427 次点击
    这是一个创建于 2230 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在开发个 windows 软件,想把它运行期间的画面和声音录下来,但是又不想通过录屏来实现,记得有一些游戏软件似乎是可以实现录制的,所以想知道这是什么原理,怎么可以做到?

    延伸下,思考了下视频制作的事情,除了通过摄像头、录屏等直接录制,或者通过准备好图片、声音、视频素材然后编辑制作,还有什么办法能生成视频的?

    10 条回复    2018-10-22 15:08:17 +08:00
    shily
        1
    shily  
       2018-10-22 09:48:00 +08:00 via Android
    游戏记录的是操作吧,没有额外的声音。
    xenme
        2
    xenme  
       2018-10-22 09:53:01 +08:00 via iPhone
    用户操作重放就行了,充当过程中屏蔽用户操作
    nowheretoseek
        3
    nowheretoseek  
    OP
       2018-10-22 10:13:05 +08:00
    @xenme 软件是自用的,实际也基本没有操作,是软件开启后就开始自动开始更换窗体元素的内容并播放声音。所以重点是怎么能将这些记录下来,得到个视频文件。
    nowheretoseek
        4
    nowheretoseek  
    OP
       2018-10-22 10:14:01 +08:00
    @shily 应该是的,记录下操作,然后回放的不是现成的视频,而是画面的“推演”。
    cjw1115
        5
    cjw1115  
       2018-10-22 12:01:44 +08:00
    看你这是用什么技术开发的了。如果是 WPF 的话,或许可以通过录制可视化树来实现录屏
    GeruzoniAnsasu
        6
    GeruzoniAnsasu  
       2018-10-22 12:07:41 +08:00   ❤️ 1
    dx 和 opengl 之类的,可以选择绘制目标缓冲区,绘制到显存而不是屏幕,然后再拖回内存存成一帧画面

    录制自己程序的渲染输出其实就是“通过准备好图片、声音、视频素材然后编辑制作”的过程,往内存输出一次再往屏幕输出一次完事。
    nowheretoseek
        7
    nowheretoseek  
    OP
       2018-10-22 12:55:01 +08:00
    @GeruzoniAnsasu 内存中生成的一个个帧是一张张“完整的”图片对象吗,不是一些帧上下文对比信息和还原算法?
    GeruzoniAnsasu
        8
    GeruzoniAnsasu  
       2018-10-22 14:30:58 +08:00
    @nowheretoseek 渲染出每一帧完整图像之后再过编码器变成视频的,视频编码器相当独立可以视为另一个模块和环节,只需要关心 API 怎么用就行,不需要自行实现。

    不过你说的可能是另一个意思,类似 2L 说的,只需定义个自有格式来记录呈现画面的流程然后下次重放就行
    Mutoo
        9
    Mutoo  
       2018-10-22 14:34:08 +08:00
    游戏录像的话,可能是显卡自带的功能哦。例如 N 卡的 ShadowPlay
    http://soft.zol.com.cn/510/5105548.html
    nowheretoseek
        10
    nowheretoseek  
    OP
       2018-10-22 15:08:17 +08:00
    @cjw1115 是 winform 吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5544 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 08:45 · PVG 16:45 · LAX 00:45 · JFK 03:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.