python如何以不同的名称保存视频?

Posted

技术标签:

【中文标题】python如何以不同的名称保存视频?【英文标题】:python how to save videos by different names? 【发布时间】:2020-04-18 16:20:07 【问题描述】:

我的目标是录制流并将该流保存到文件夹中。问题是,我必须每 5 秒将流保存到不同的文件夹中。我的意思是对于 30 秒长的流,应该有 6 个文件夹。我的代码正在运行,但我无法正确测量秒数,我将帧 (a) 划分为 fps。但它没有给出正确的结果。此外,我无法使用不同的名称将视频保存到不同的文件夹中。我必须给不同的名字,但我不知道该怎么做。

import numpy as np
import cv2, time
import os

cap = cv2.VideoCapture(0)
frame_width = int(cap.get(3))
frame_height = int(cap.get(4))

out = cv2.VideoWriter('output.avi',cv2.VideoWriter_fourcc('M','J','P','G'), 10, (frame_width,frame_height))
a=0
n=0
while(cap.isOpened()):
    a=a+1
    fps = cap.get(cv2.CAP_PROP_FPS)
    sec = a / fps
    ret, frame = cap.read()
    n=n+1

    if ret==True:
        if sec%5==0:
            out = cv2.VideoWriter('output.avi2', cv2.VideoWriter_fourcc('M', 'J', 'P', 'G'), 10,
                                  (frame_width, frame_height))
        else:
            out.write(frame)

        cv2.imshow('frame',frame)

        if cv2.waitKey(1) & 0xFF == ord('q'):
            break

    else:
        break

print(a)
print('fps= '+str(fps))
print('second= '+str(sec))
cap.release()
out.release()
cv2.destroyAllWindows()

【问题讨论】:

***.com/a/55411718/6218543 【参考方案1】:

您无法正确测量秒数,因为您的脚本需要时间来执行,而且由于 python 是一种相对较慢的编程语言,如果您正在处理库,执行代码所需的时间足以导致明显的延迟。尝试导入 datetime 模块并用它测量时间

import datetime


time_to_wait = datetime.timedelta(seconds=5)

while(cap.isOpened()):
    last = datetime.datetime.now()
    # do your stuff
    if ret==True:
       if datetime.datetime.now() - last >= time_to_wait:
           last = datetime.datetime.now()
           # do your stuff

关于您的命名问题,我没有确定的解决方案,但您可以尝试使用类和列表,但我不确定

【讨论】:

如果 sec%5==0 部分我应该写什么? TypeError: %: 'datetime.datetime' 和 'int' 的操作数类型不受支持 'if datetime.datetime.now() - last >= time_to_wait:' 中没有操作数 % 并且没有 int 类型。一定要写对 将 'if sec%5==0' 替换为 'if datetime.datetime.now() - last >= time_to_wait:'

以上是关于python如何以不同的名称保存视频?的主要内容,如果未能解决你的问题,请参考以下文章

如何以不同的名称保存 Visual Studio 项目(如另存为)?

如何在循环中以不同的名称保存 cv::imwrite

Python pandas 保存多个不同名称的 CSV

使用 2 个不同选项卡中的按钮以不同名称保存同一工作簿

从原始数据创建 AVPlayer 或以不同格式将视频保存到 PFFile

选择名称以保存 .csv 文件并使用在整个 python 脚本中输入的名称