要注意:
1. 圖片傳視頻要自己設置幀率和分辨率
2.讀取圖片后分辨率要resize為和視頻分辨率一樣才可以
3.寫完.avi視頻后視頻比較大,用ffmpeg將avi視頻壓縮為mp4
import cv2
from cv2 import VideoWriter, VideoWriter_fourcc, imread, resize
import os
from subprocess import call
img_root = '/Users/fanc/Downloads/image/'
out_root = '/Users/fanc/Downloads/image/PeppaPig.avi'
fps = 20 #幀率
size = (640,480)
fourcc = VideoWriter_fourcc(*"MJPG") #支持jpg
videoWriter = cv2.VideoWriter(out_root, fourcc, fps, size)
im_names = os.listdir(img_root)
print(len(im_names))
for im_name in range(len(im_names) - 2):
string = img_root + 'frame' + str(im_name) + '.jpg'
print(string)
frame = cv2.imread(string)
frame = cv2.resize(frame, size) #注意這里resize大小要和視頻的一樣
videoWriter.write(frame)
videoWriter.release()
dir = out_root.strip(".avi")
command = "ffmpeg -i %s.avi %s.mp4" % (dir, dir) #使用ffmped將avi壓縮為mp4,注意兩個的路徑
call(command.split())