我正在尝试将一系列帧转换为视频。过去,我已经设法完成了多次这项工作,但是由于某种原因,现在它不再起作用了。我无法为自己的一生弄清自己在做什么/做错了。
尝试播放由此脚本生成的视频时,视频文件会显示缩略图,但是使用默认的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"