gpt4 book ai didi

python - 如何保存视频,尽管我取消了该过程

转载 作者:行者123 更新时间:2023-12-02 17:05:43 24 4
gpt4 key购买 nike

我正在执行无限循环来保存视频,当我终止进程时,视频文件不会打开,尽管视频的大小很大,这告诉我他正在保存文件,但是由于某种原因他无法打开它,释放是循环的。我很乐意得到解决这个问题的方法,谢谢

    while True:
frame, frame_id, time_video = next(self.distributor_frame)
if frame is not None:
self.out.write(frame)
else:
break

self.out.release()

最佳答案

如果只想从程序中进行CTRLC,则可以捕获Python的内置KeyboardInterrupt异常,然后继续关闭资源。

try:
while True:
frame, frame_id, time_video = next(self.distributor_frame)
if frame is not None:
self.out.write(frame)
else:
break
except KeyboardInterrupt:
print('Stopped by keyboard interrupt')
self.out.release()

通常,如果仅发送SIGINT(CTRLC)来停止脚本,它将在Python中引发一个异常,并且此异常将剪切程序。但是,您可以使用 except KeyboardInterrupt截获此信号,而只是不执行任何操作,即 passprint一些消息(如我所做的)或您喜欢的任何事情。但是由于我们捕获了异常并且没有再次引发它,因此程序不会在该块内的中断中结束。

另外,可以将 VideoWriter子类化(或创建一个包含该类的类)并为其提供一个上下文管理器-然后,即使您遇到异常,资源也将被关闭。 This answer关于如何自己创建上下文管理器进行了很好的讨论。

关于python - 如何保存视频,尽管我取消了该过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54743037/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com