【 实测可用 】python + CV2 视频分拆合并

参考:https://blog.csdn.net/qq_43328040/article/details/109169733
实际测试发现合并操作有错,参考其他资料修改下

准备:一个电影视频 1.avi

运行1,分拆,取前2000帧保存到img目录

import cv2
cap = cv2.VideoCapture('1.avi')
isOpened = cap.isOpened   # 判断视频是否可读
print(isOpened)
fps = cap.get(cv2.CAP_PROP_FPS)  # 获取图像的帧,即该视频每秒有多少张图片
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) # 获取图像的宽度和高度
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
print(fps, width, height)
i = 100
while(isOpened):
    if i == 501:  # 最大2001
        break
        
    # 读取每一帧,falg表示是否读取成功,frame为图片的内容
    (flag, frame) = cap.read()   
    filename = '.\img\img' + str(i) + '.jpg' # 文件的名字
    if flag:
        cv2.imwrite(filename, frame, [cv2.IMWRITE_JPEG_QUALITY,100]) # 保存图片
    i += 1

运行2,分拆,把选取的帧保存为视频,可以选帧率,即实现快放慢放

import cv2

# 输出视频路径
video_dir = '2.avi'
# 帧率
fps = 50
# 图片尺寸
img_size = (1920, 1080)
 
fourcc = cv2.VideoWriter_fourcc('M', 'J', 'P', 'G')
video_writer = cv2.VideoWriter(video_dir, fourcc, fps, img_size)
 
for i in range(350, 501):   # 选部分帧
    im_name = 'img\img'+ str(i) + '.jpg'
    print(im_name)
    frame = cv2.imread(im_name)
    video_writer.write(frame)
    cv2.imshow('rr', frame)
    cv2.waitKey(1)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值