视频转为图片
import cv2
import numpy as np
vid = cv2.VideoCapture(r"999999999.avi")
marked, frame = vid.read()
count = 1
print(marked)
while marked:
cv2.imwrite(r'.\results\%d.bmp'%count, frame)
marked, frame = vid.read()
count += 1
图片转为视频
import os
import cv2
from tqdm import tqdm
imagespath = r'./results'
outputpath = r'F:\video.avi'
fps = 23
sizes = (1920, 1080) #w, h
videowriter = cv2.VideoWriter(outputpath, cv2.VideoWriter_fourcc(*'XVID'), fps, sizes)
lis = os.listdir(imagespath)
for i in tqdm(lis, mininterval=3):
img = cv2.imread(os.path.join(imagespath, i))
videowriter.write(img)
videowriter.release()
#编码参数:
# cv2.VideoWriter_fourcc('M', 'P', '4', 'V') MPEG-4编码 .mp4 要限制结果视频的大小,这是一个很好的选择。
# cv2.VideoWriter_fourcc('X','2','6','4') MPEG-4编码 .mp4 想限制结果视频的大小,这可能是最好的选择。
# cv2.VideoWriter_fourcc('I', '4', '2', '0'),该参数是YUV编码类型,文件名后缀为.avi 广泛兼容,但会产生大文件
# cv2.VideoWriter_fourcc('P', 'I', 'M', 'I'),该参数是MPEG-1编码类型,文件名后缀为.avi
# cv2.VideoWriter_fourcc('X', 'V', 'I', 'D'),该参数是MPEG-4编码类型,文件名后缀为.avi 要限制结果视频的大小,这是一个很好的选择。
# cv2.VideoWriter_fourcc('T', 'H', 'E', 'O'),该参数是Ogg Vorbis,文件名后缀为.ogv
# cv2.VideoWriter_fourcc('F', 'L', 'V', '1'),该参数是Flash视频,文件名后缀为.flv
查看要转视频的fps和图像大小的方式
右键点击视频,然后查看最上方的details,这里的Frame width和Frame height就是相应的视频图像的宽和高,Frame rate就是fps,fps是小数
OpenCV+Python视频读写 - 简书 (jianshu.com)
python 中cv2.VideoWriter_fourcc 输出视频的格式要求 - 笑_天 - 博客园 (cnblogs.com)