首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在windows logoff上通过python保存视频

在windows logoff上通过python保存视频
EN

Stack Overflow用户
提问于 2022-06-07 09:03:54
回答 1查看 46关注 0票数 1

我使用这段代码捕获监视器上的所有内容,并将其保存到mp4文件中:

代码语言:javascript
运行
复制
# screen recording config
sct = mss()
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
out = cv2.VideoWriter(recording_file_name_location, fourcc, 20.0, (1920, 1080))

# while loop that captures the while screen image by image
while True:
    sct_img = sct.grab(screen_resolution)
    out.write(np.array(sct_img))

问题是,我希望这段代码在我从Windows机器上下线时停止录制,这确实发生了,视频被保存在我的桌面上,但它是不可播放的。

如果我通过PyCharm运行这段代码,并通过PyCharm (CTRL +C或使用PyCharm停止按钮)结束代码,那么它确实保存了mp4文件,并且我可以毫无问题地播放它。

另外,如果我从CMD启动代码,它可以正常工作,但是如果我关闭右上角的"X“上的CMD窗口,视频也是不可播放的。

我猜这是因为在后台杀死Python进程,所以脚本/代码永远不会正确地保存文件。

你们对这个问题有什么建议吗?如何保存mp4视频一旦我注销或关闭我的Windows机器?

提前谢谢你

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-07 13:35:07

过程是突然杀死了

由于无法调用out.release(),视频无法播放。视频写入者没有机会将索引结构写入视频文件,只有在文件完成时才能这样做。

简单修复:创建一个.ts 文件,而不是任何其他格式/扩展名。这些“传输流”格式无需最后确定。

也许您需要了解注销时Windows是如何结束进程的。通常,Windows向每个应用程序/窗口发送一条WM_QUERYENDSESSIONWM_ENDSESSION消息,告诉它在强制结束之前结束自己。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72528598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档