Opencv载取任意长度视频

2023-11-19

使用Opencv截取仍意长度视频。

import cv2
import sys

def select_video(input_path,output_path,start=1,end=-1):
    """
    input_path表示原视频路径
    output_path表示要保存路径
    start表示起始的帧,默认从头开始
    end表示终止帧,默认到结尾
    """
    assert start<end,"起始帧位置要小于终止帧位置"
    cap = cv2.VideoCapture(input_path)
    if not cap.isOpened():
        print("Cannot open camera")
        exit()
    # print()
#     fps = int(cap.get(cv2.CAP_PROP_FPS)) #有些文件该值无法获取
    fps = 25
    width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
    height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
    size =(width,height)
    print('fps',fps)
    print('size',size)

    num_frames = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))# 该值有时也读不出来要注意
    if num_frames<0:
        num_frames=end
 
    fourcc = cv2.VideoWriter_fourcc(*'mp4v') # *'XVID' 保存AVI视频
    out = cv2.VideoWriter(output_path, fourcc, fps,(width, height), True)
    i =  1 
    j =  0 
    end = min(end,num_frames)
    while True:
        ret, frame = cap.read()
        if not ret:
            print("Can't receive frame (stream end?). Exiting...")
            break   
        if i>=start and i <=end:
            out.write(frame)
            j  = j+1
        i = i+1
        if i>end:
            print("\nfinished all ")
            break
        sys.stdout.write('\r%d/%d finished!' %(j,end-start+1))
        sys.stdout.flush() 

    cap.release()
    out.release()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Opencv载取任意长度视频 的相关文章

随机推荐

  • 深度学习小白——DenseNet学习

    原论文地址 https arxiv org abs 1608 06993 用Keras写的pre model代码地址 https github com flyyufelix DenseNet Keras 一 主要原理 其借鉴了ResNet的
  • 深度学习如何集成领域知识?IBM研究等《知识增强深度学习》综述,全面阐述科学与经验知识增强的深度学习...

    来源 专知 尽管在过去的几年里 深度学习模型在许多不同的领域取得了巨大的成功 但通常数据匮乏 在不可见的样本上表现不佳 而且缺乏可解释性 目标领域往往存在各种先验知识 利用这些先验知识可以弥补深度学习的不足 为了更好地模仿人类大脑的行为 人
  • 下面是两种解决Redis击穿问题的方法,并给出相应的Java代码实现。

    Redis击穿问题指的是当一个key在缓存中过期时 恰好有大量并发请求访问该key 导致请求直接打到数据库 引起数据库压力过大 甚至宕机 方法一 使用互斥锁 在访问缓存之前 首先获取一个互斥锁 防止多个请求同时访问数据库 只有一个请求可以访
  • 转 用十条命令在一分钟内检查Linux服务器性能

    如果你的Linux服务器突然负载暴增 告警短信快发爆你的手机 如何在最短时间内找出Linux性能问题所在 来看Netflix性能工程团队的这篇博文 看它们通过十条命令在一分钟内对机器性能问题进行诊断 概述 通过执行以下命令 可以在1分钟内对
  • 开发百度地图定位APP(LBS)

    一 注册成为百度地图开发者 并获取开发密钥 获取密钥时需要进入Android studio使用keytool文件获取SHA1码 二 下载开发包解压并导入Android studio 选择自己需要的开发包下载 这里我选择的是基础地图基础定位J
  • C#类和对象--习题(2)成绩管理

    老师口中说 少用static 然后有习题要我们用static来写 实现简单学生成绩管理 两个类 方法带static 1 学生及信息录入 id name grade 2 输出成绩 3 修改成绩 4 查询成绩 5 显示成绩 6 退出系统 Met
  • 卓越性能代码_教你Win10启用卓越性能模式,效果明显!

    本文授权转载自公众号 labulac 当Windows 10更新到内部版本17333后 一些朋友可能发现 以往电源管理模式有节能 标准和高性能三个选项 现在装完系统默认启用的是标准选项 剩下的两个模式被隐藏了 当然我们也可以将这些电源模式找
  • Vue插槽用法,在JSX中的用法

    注意 scopedSlots会包含 slots里面的内容 所以我们两个一起使用的时候 名字要不一样 scopedSlots 里面的属性值是函数 可以调用这个函数进行渲染 scopedSlots会包含 slots slots 里面的属性值是一
  • Java如何设置线程的优先级呢?

    转自 Java如何设置线程的优先级呢 线程 thread 是操作系统能够进行运算调度的最小单位 它被包含在进程之中 是进程中的实际运作单位 一条线程指的是进程中一个单一顺序的控制流 一个进程中可以并发多个线程 每条线程并行执行不同的任务 在
  • 从零开始搭建uni-app框架的小程序开发环境

    个人主页 个人主页 推荐专栏 小程序开发成神之路 作者简介 一个读研中创业 打工中学习的能搞全栈 也搞算法 目前在搞大数据的奋斗者 您的小小关注是我持续输出的动力 文章目录 一 小程序账号的开通 1 注册小程序账号 2 获取小程序身份证 A
  • 寒假小复习2

    package demo public class Demo public static void main String args int i 2 switch i case 1 System out println System out
  • Pytorch学习笔记(二)

    后续遇到一些函数等知识 还会进行及时的补充 tensor的创建 使用pytorch中的列表创建tensor tensor torch Tensor 1 1 0 2 print
  • python 基础

    条件表达式 if 1 gt 2 print 111 elif 2 gt 3 print 222 else print 333 for循环 for i in range 3 10 print i 输出结果 for循环 步长为2 for i i
  • QStyle 自定义QSpinBox外观

    点击查看详细介绍 头文件 ifndef SPINBOX STYLE 1 H define SPINBOX STYLE 1 H include
  • 【高等数学基础知识篇】——函数,极限与连续

    本文仅用于个人学习记录 使用的教材为汤家凤老师的 高等数学辅导讲义 本文无任何盈利或者赚取个人声望的目的 如有侵权 请联系删除 文章目录 一 函数基础知识 1 1 基本初等函数和初等函数 1 2 函数的初等特性 1 3 特殊函数 二 函数题
  • PageHelper的order by方法可替代mybatis中order by必须使用$来避免sql注入

    PageHelper的order by方法可替代mybatis中order by必须使用 来避免sql注入 在my batis中 我们通常使用 字符 来传值 在mybatis中使用order by排序时也习惯性的使用 然后发现sql错误 后
  • 【数学建模笔记 24】数学建模的时间序列模型

    24 时间序列模型 定义 时间序列是按时间顺序排列的 随时间变化且相互关联的数据序列 分析时间序列的方法构成数据分析的一个重要领域 即时间序列分析 一个时间序列往往是以下几类变化形式的叠加 长期趋势变动 T t T t Tt 朝一定方向的变
  • zabbix 通过import批量导入新增主机和批量删除旧的主机

    通过import批量导入新增主机 本文采用zabbix的hosts页面的import 批量导入 zabbix3 2版本批量导入模板 bin bash filename zbx xml echo
  • 『sklearn学习』多种模型预测脸的下半部分的结果对比

    预测脸的下半部分 import numpy as np import matplotlib pyplot as plt from sklearn datasets import fetch olivetti faces from sklea
  • Opencv载取任意长度视频

    文章目录 使用Opencv截取仍意长度视频 使用Opencv截取仍意长度视频 import cv2 import sys def select video input path output path start 1 end 1 input