Python OpenCV VideoWriter产生的视频索引已损坏

时间:2018-12-10 15:38:15

标签: opencv

我正在尝试将一系列帧转换为视频。过去,我已经设法完成了多次这项工作,但是由于某种原因,现在它不再起作用了。我无法为自己的一生弄清自己在做什么/做错了。

尝试播放由此脚本生成的视频时,视频文件会显示缩略图,但是使用默认的Windows 10视频播放器播放视频时,它会失败并表示视频已损坏。

我尝试使用VLC播放视频,这次可以正常播放,但是它表示索引已损坏,需要重新构建。然后播放视频。

有什么想法吗?

import sys, os, cv2, re, csv
import numpy as np


if __name__ == "__main__":
    print "Processing frames..."
    vHeight = 480
    vWidth = 640

    to_be_processed_path = "./frames"
    video_name = "video_v2.avi"
    filename_format = re.compile("frame\d{5}\.png")

    video = cv2.VideoWriter(video_name, -1, 30, (vWidth, vHeight))

    for name in [img for img in filter(filename_format.search, os.listdir(to_be_processed_path))]:

        img_to_be_processed_path = os.path.normpath(os.path.join(to_be_processed_path, name))
        img_processed = cv2.imread(img_to_be_processed_path, cv2.IMREAD_COLOR)
        img_processed = cv2.cvtColor(img_processed, cv2.COLOR_BGR2RGB)
        if img_processed is None:
            raise Exception("Image not found: %s" % img_to_be_processed_path)

        # write text on video
        cv2.putText(img_processed,
            "Hello world",
            (700, vHeight/10,),
            cv2.FONT_HERSHEY_SIMPLEX,
            0.5,
            (255,255,255,))
        video.write(img_processed)

    video.release()
    cv2.destroyAllWindows()

    print "Done"

0 个答案:

没有答案