记一次renderdoc自动截帧

官方文档,官方文档写的真是一言难尽,看过的都懂

1、python 环境搭建:

github上下载renderdoc截帧工具,

然后使用Visual Studio打开源码根目录下的renderdoc.sln文件

打开后直接点击【生成解决方案】

编译好后会在源码根目录生成一个x64\Development目录, 目录结构如下图

pymodules就是关键目录了

2、windows截帧

1)使用renderdoc打开被测试应用

此次的方案需要在已打开被测试应用的基础上进行

2)python中添加如下代码即可

python 复制代码
import shutil
import sys
import os
import time

renderdoc = r'D:\pythonScripts\TestRenderDocTools\renderdoc'
os.environ["PATH"] += os.pathsep + os.path.abspath(renderdoc)
if sys.platform == 'win32' and sys.version_info[1] >= 8:
    os.add_dll_directory(renderdoc)

renderdoc_py = r"D:\pythonScripts\TestRenderDocTools\renderdoc\pymodules"
sys.path.append(renderdoc_py)
import renderdoc as rd


# 触发一次windows截帧并将截图保存至指定目录
def capture(savedPath):
    # 获取远程设备目标
    target_code = rd.EnumerateRemoteTargets("", 0)

    # # 创建目标控制连接
    targetControl = rd.CreateTargetControl(r"localhost", target_code, "capture_windows", True)
    if not targetControl:
        return False, '创建目标控制失败'
    # 进行一次截帧
    result = targetControl.TriggerCapture(1)

    # 等待截帧完成并将对应的数据放到指定目录
    startTime, isSuccess = time.time(), False
    while time.time()-startTime < 20:
        message = targetControl.ReceiveMessage(None)
        cap_path, cap_id, frame_num, api = message.newCapture.path, message.newCapture.captureId, message.newCapture.frameNumber, message.newCapture.api
        if cap_path:
            print(f'cap_path = {cap_path}, cap_id={cap_id}, frame_num={frame_num}, api={api}')
            # 将文件cppy到指定目录
            # 如果指定目录不存在则创建
            if not os.path.isdir(savedPath):
                os.makedirs(savedPath, exist_ok=True)

            # 将文件移动到指定目录
            shutil.move(cap_path, savedPath)

            isSuccess = True
            break

        time.sleep(1)

    if isSuccess:
        return True, '截帧成功'
    else:
        return False, '截帧超时失败'

capture(r'D:\RenderDoc\test')
相关推荐
胖墩会武术7 分钟前
win32com.client模块 —— Python实现COM自动化控制与数据交互
python·自动化·交互·win32com
蹦蹦跳跳真可爱58933 分钟前
计算机视觉处理----OpenCV(从摄像头采集视频、视频处理与视频录制)
人工智能·python·opencv·计算机视觉·音视频
一个天蝎座 白勺 程序猿2 小时前
Python爬虫(48)基于Scrapy-Redis与深度强化学习的智能分布式爬虫架构设计与实践
爬虫·python·scrapy
开开心心就好7 小时前
高效视频倍速播放插件推荐
python·学习·游戏·pdf·计算机外设·电脑·音视频
yzx9910137 小时前
Python开发系统项目
人工智能·python·深度学习·django
FreakStudio8 小时前
一文速通 Python 并行计算:12 Python 多进程编程-进程池 Pool
python·嵌入式·面向对象·多进程·并行计算·电子diy
天才测试猿9 小时前
接口自动化测试之pytest接口关联框架封装
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·pytest
先做个垃圾出来………9 小时前
Python中使用pandas
开发语言·python·pandas
不爱吃山楂罐头10 小时前
第三十三天打卡复习
python·深度学习
Dxy123931021611 小时前
DrissionPage 性能优化实战指南:让网页自动化效率飞升
运维·爬虫·python·性能优化·自动化