我想把一系列的画面转换成视频。在过去,我已经成功地让它工作了很多次,但由于某些原因,现在它不再工作了。我一辈子都搞不清我到底做错了什么。
尝试播放此脚本生成的视频时,视频文件会显示缩略图,但当使用默认的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"