V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
panzhangwang
V2EX  ›  Python

请教高手一个桌面截屏回溯功能的实现

  •  
  •   panzhangwang · 2020-06-05 08:21:25 +08:00 · 4402 次点击
    这是一个创建于 1633 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近一个开源项目,一个傻瓜式的报修工具。采取 pysimplegui 开发,一个置顶的悬浮报修按钮,让普通用户碰到问题时,可以一键报修,通知 IT 人员。

    由于,很多情况下,需要重现问题,因此要知道截屏时间点之前,用户的一些操作。制作回溯短视频?由于在出问题时,用户可能没有马上报修,所有短视频可能,不能准确有效捕获到信息,视频太长,降低 IT 效率。

    听听各位大佬的意见!谢谢

    项目网址 https://github.com/cailaixiu/cailaixiu
    27 条回复    2020-06-05 14:25:50 +08:00
    daozhihun
        1
    daozhihun  
       2020-06-05 08:26:38 +08:00   ❤️ 1
    比较好的办法是操作记录 log,然后把 log 上传。如果要截图什么的,可以考虑:
    - 每隔一定时间自动截图一次(比如 5 秒或者 10 秒??),然后把比较老的截图自动删掉。
    - 如果实在要视频的话,我觉得可以参考 PS4 的视频设计,一直自动录取 3 分钟的内容,把比较老的内容自动删掉(防止磁盘和内存消耗太多)。

    不过我觉得还是强化 log 更好。。。没怎么听过保修是录视频的这种模式。。
    panzhangwang
        2
    panzhangwang  
    OP
       2020-06-05 08:29:20 +08:00   ❤️ 1
    @daozhihun 自动截屏可以,要作图形对比吧?相似的图片过滤掉,因为一定间隔有重复吧
    classyk
        3
    classyk  
       2020-06-05 08:41:25 +08:00
    直接视频就行了,选一个适合的视频压缩算法可以巨幅降低存储。
    rioshikelong121
        4
    rioshikelong121  
       2020-06-05 08:44:16 +08:00
    强化 Log 的话 完全可以推测出用户行为的。
    cjpjxjx
        5
    cjpjxjx  
       2020-06-05 08:46:29 +08:00 via iPhone   ❤️ 1
    感觉有点小题大做了。。。根据我当年桌面运维的经验,普通用户遇到的问题基本都不是因为某项操作导致的,可能是硬件问题,比如网线松了、显示器不亮了、键鼠不好使了,也有可能是操作系统或软件本省的问题,比如软件崩了、服务器炸了,硬件问题你没法截屏判断,软件问题感觉不如远程控制来的实在
    evilic
        6
    evilic  
       2020-06-05 08:49:18 +08:00
    点击你程序的按键后,自动调用 windows 自带的 步骤记录器 psr ?可行否
    panzhangwang
        7
    panzhangwang  
    OP
       2020-06-05 08:50:45 +08:00
    @cjpjxjx 硬件只是一部分,软件系统的问题占多数
    imdong
        8
    imdong  
       2020-06-05 08:51:33 +08:00 via iPhone
    软件内多整 log 比啥都强,
    系统就低清晰度录屏,
    或者就键鼠记录…(高危行为,小心报毒)

    我知道的就这些初级解决方案😅
    panzhangwang
        9
    panzhangwang  
    OP
       2020-06-05 08:54:02 +08:00
    @cjpjxjx 这个软件解决的问题实际上,问题辅助记录。最后还是远程解决什么的。但是报修过程中的很多信息要保存下来。一个小问题,用户电话报修,你要问题她 IP,她不知道怎么看,有些地方作在桌面上,这样还是让她报,这个小工具都可以省了
    panzhangwang
        10
    panzhangwang  
    OP
       2020-06-05 08:57:05 +08:00
    @imdong 要求第三方软件作好日志,最好不过。但是,这个开源项目要解决的本质是问题登记,原本不然让大家用复杂的 Bugzilla 之类的。终端用户不会去录,IT 人员累死累活,也懒得去录
    daozhihun
        11
    daozhihun  
       2020-06-05 09:18:25 +08:00
    @panzhangwang 有重复无所谓,建议你不要做去重。
    你要知道用户上报问题应该是很少的(我觉得正常频率一台机器顶多一周一次),所以你要排查问题的时候也不多,这个时候与其你写算法来去重(况且还可能搞出更多 bug ),不如直接肉眼看好了。
    如果你说上报的内容太多人工看不过来,那你就要考虑是不是你的系统问题太多了,重点要去解决系统的 bug,而不是做这个报 bug 的东西。
    lllllliu
        12
    lllllliu  
       2020-06-05 09:35:27 +08:00
    一直录制一个你觉得合适秒数的视频,比如你需要 15 秒前,那你就设置一个可以存 15s 的环形 buffer,一点截图就把 buffer 拿出来拼成视频,或者你需要的任何东西呀。
    panzhangwang
        13
    panzhangwang  
    OP
       2020-06-05 09:41:19 +08:00
    @daozhihun 甲方与乙方对 Bug 的管理方式不同。甲方基本上是事件管理,事件的种类比较多。粗狂点,没有系统也能干,认真点的话,能有比较好的问题列表、分门别类的报修频率等信息。
    panzhangwang
        14
    panzhangwang  
    OP
       2020-06-05 09:55:23 +08:00
    我经历的感觉,事件散布在多个工程师的微信里、记忆里、零碎的纸张上,下游厂商要每月的问题列表,我们就是拼记忆
    shilyx
        15
    shilyx  
       2020-06-05 10:07:35 +08:00
    内网管理工具标配屏幕录像功能
    rizon
        16
    rizon  
       2020-06-05 10:09:22 +08:00
    我记得国外有个项目专门做这个的,远程排查问题的,记录客户方的 chrome 操作记录。 不太记得名字了,但应该是需要外网的
    panzhangwang
        17
    panzhangwang  
    OP
       2020-06-05 10:11:51 +08:00
    有些地方特点决定了不能用外网。网管工具不适合问题跟踪。
    panzhangwang
        18
    panzhangwang  
    OP
       2020-06-05 10:13:48 +08:00
    有些环境下,不仅仅是网页,也不仅仅是 Chrome 。
    celeron533
        19
    celeron533  
       2020-06-05 10:14:36 +08:00
    会引起隐私问题。
    比如客户端在查看机密文件的时候同时操作你的系统,此时你的系统崩溃,这个截屏系统会将之前的机密文件截屏内容一并发出。
    panzhangwang
        20
    panzhangwang  
    OP
       2020-06-05 10:16:02 +08:00
    @celeron533 隐私考虑到了,因此数据不在云端,而是在企业的内部服务器上
    panzhangwang
        21
    panzhangwang  
    OP
       2020-06-05 10:25:54 +08:00
    @celeron533 另外,这个是在单位内部用,隐私问题不是普通一个软件的问题。再者,问题上报时,有个打钩项,选择了,就上传问题追溯截屏,并且时间段可以给用户选择。比如,事发前面 10 秒的。怎么样?
    kruskal
        22
    kruskal  
       2020-06-05 10:40:49 +08:00
    截屏还是有一定风险,IT 不一定有权限接触各个密级的文件;
    panzhangwang
        23
    panzhangwang  
    OP
       2020-06-05 10:44:28 +08:00
    截屏有告知,就可以。这个隐私问题超出了软件本身
    celeron533
        24
    celeron533  
       2020-06-05 11:18:54 +08:00
    @panzhangwang 要看贵司的具体机密保护政策了。常见的有:
    - 极秘一般不允许截图,不许有 USB,禁止拍照等
    - 秘密要求不外传,不打印
    no1xsyzy
        25
    no1xsyzy  
       2020-06-05 13:36:04 +08:00
    @celeron533 #24 极秘?机密吧。定义三级,秘密、机密、绝密。
    说到底,既然是涉密内容这个系统装什么软件都要审查。报修软件?省省吧,电话报修不能用吗?
    虽说实际操作中有很多密级很低的也不作保护(比如招标文件到合同签订完成前都是秘密级的,但还是随便放得到处都是),但这不是一介 IT 该担心的范畴。你不是涉密人员,没有保护机密的主动义务,只有保护机密的被动义务。
    rooob1
        26
    rooob1  
       2020-06-05 13:54:34 +08:00
    @lllllliu 说的好!
    locoz
        27
    locoz  
       2020-06-05 14:25:50 +08:00
    一直录屏就行了,码率不用太高,保持 3 分钟内录屏放在内存里,按键后再存到硬盘。这种录屏操作也有现成的案例,Nintendo Switch 就是这样的做的,按了录屏键之后保存前面一段时间内的录屏。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1090 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 18:26 · PVG 02:26 · LAX 10:26 · JFK 13:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.