如何解决逐帧保存视频的问题

时间:2019-02-13 10:59:27

标签: python opencv video-processing

问题是我尝试保存一个视频文件,每次我从另一个功能(我检查这不是同一帧...)中得到一帧,创建的视频只有一个帧。我在类Video_utility之外运行循环,并将帧发送到函数save_and_display_video

import cv2

class Video_utility:
    def __init__(self, name_video, format_video, display, fps, size):
        self.name_video = name_video
        self.format_video = format_video
        self.display = display
        self.fps = fps
        self.size = size
        self.stream_frame = None
        self.flag_update = True
        self.display = True
        self.fourcc = cv2.VideoWriter_fourcc(*'XVID')
        self.out = cv2.VideoWriter(name_video, self.fourcc, fps, self.size)
        self.i = 0

    def save_and_display_video(self, frame):
        frame = cv2.resize(frame,(self.size))
        self.out.write(frame)
        self.out.release()
        cv2.destroyAllWindows()

1 个答案:

答案 0 :(得分:1)

不要在每帧之后关闭文件

您的save_and_display_video()函数具有self.out.release()。

仅在收到整个视频之后,才需要这样做。