视频帧数修改

视频按照每秒任意帧保存:

做目标检测,发现视频格式有点问题,但至少opencv读取还是没问题的。硬着头皮对视频进行检测之后,帧乱了。。并且每个视频乱的程度还不一样
25fps
175fps
这个更离谱,175fps。。
视频时长变得很短。
没找到问题所在,但至少没丢帧(总帧数没变),所以改一下帧数。代码如下:


import cv2
import os
import shutil
# 设置图片文件夹路径和输出视频文件名
# image_folder = r'\images' # 大帧数时图片中转,一般来说无需设置
video_name = r'\predict2\video.mp4'# 生成后的视频保存的路径
error_video = r'\predict2\video.avi'# 乱帧视频的路径


cap = cv2.VideoCapture(error_video)
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
frame_count = 0
i = 0
fourcc = cv2.VideoWriter_fourcc(*'mp4v')  # 使用MP4编码
out = cv2.VideoWriter(video_name, fourcc, 10.0, (width, height)) # 10.0是目标fps,自行修改
frame_list = []
while True:
    ret,frame = cap.read()
    if not ret:
        break
    frame_list.append(frame)
    frame_count += 1
    if frame_count == 10: #最好和fps保持一致,太大的话会给内存带来负担
        frame_count = 0
        # 大帧数时用,在image_folder中转一下
        # images = sorted([img for img in os.listdir(image_folder) if img.endswith((".png", ".jpg"))], key=lambda x: int(x.split('.')[0]))
        # frame = cv2.imread(os.path.join(image_folder, images[0]))
        for image in frame_list:
            out.write(image)
        # shutil.rmtree(image_folder)
        # os.makedirs(image_folder, exist_ok=True)
        frame_list = []
        i+=1
        print(f'生成{i}秒')

out.release()



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值