python+openCV对视频进行截取的实现


Posted in Python onNovember 27, 2020

使用cv2对视频进行切割

import cv2


def clip_video(source_video, target_video, start_time, end_time):
  cap = cv2.VideoCapture(source_video)
  if not cap.isOpened():
    logger_warning('video is not opened')
  else:
    success, frame = cap.read()
    f_shape = frame.shape
    f_height = f_shape[0] # 原视频图片的高度
    f_width = f_shape[1]
    fps = cap.get(5) # 帧速率
    frame_number = cap.get(7) # 视频文件的帧数
    duration = frame_number / fps # 视频总帧数/帧速率 是时间/秒【总共有多少秒的视频时间】
    if start_time > duration or end_time > duration:
      return
    start_time = fps * float(start_time)
    end_time = fps * float(end_time)
    # AVI格式编码输出 XVID
    four_cc = cv2.VideoWriter_fourcc(*'H264')
    video_writer = cv2.VideoWriter(target_video, four_cc, fps, (int(f_width), int(f_height)))
    num = 0
    while True:
      success, frame = cap.read()
      if int(start_time) <= int(num) <= int(end_time):
        if success:
          video_writer.write(frame)
        else:
          break
      num += 1
      if num > frame_number:
        break
    cap.release()

VideoWriter_fourcc编码格式:

fourcc意为四字符代码(Four-Character Codes),顾名思义,该编码由四个字符组成,下面是VideoWriter_fourcc对象一些常用的参数,注意:字符顺序不能弄混
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

到此这篇关于python+openCV对视频进行截取的实现的文章就介绍到这了,更多相关openCV视频截取内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
pymssql ntext字段调用问题解决方法
Dec 17 Python
python根据时间生成mongodb的ObjectId的方法
Mar 13 Python
在Python中使用全局日志时需要注意的问题
May 06 Python
浅谈python装饰器探究与参数的领取
Dec 01 Python
python机器学习实战之K均值聚类
Dec 20 Python
查看python安装路径及pip安装的包列表及路径
Apr 03 Python
Django获取该数据的上一条和下一条方法
Aug 12 Python
wxPython:python首选的GUI库实例分享
Oct 05 Python
基于keras输出中间层结果的2种实现方式
Jan 24 Python
Python类如何定义私有变量
Feb 03 Python
python实现录屏功能(亲测好用)
Mar 02 Python
matplotlib如何设置坐标轴刻度的个数及标签的方法总结
Jun 11 Python
Python环境配置实现pip加速过程解析
Nov 27 #Python
python实现学生信息管理系统(精简版)
Nov 27 #Python
基于Python采集爬取微信公众号历史数据
Nov 27 #Python
Django中日期时间型字段进行年月日时分秒分组统计
Nov 27 #Python
Python基于execjs运行js过程解析
Nov 27 #Python
celery在python爬虫中定时操作实例讲解
Nov 27 #Python
python输出国际象棋棋盘的实例分享
Nov 26 #Python
You might like
PHP HTML JavaScript MySQL代码如何互相传值的方法分享
2012/09/30 PHP
php递归获取目录内文件(包含子目录)封装类分享
2013/12/25 PHP
10个实用的PHP正则表达式汇总
2014/10/23 PHP
php防止sql注入简单分析
2015/03/18 PHP
Yii使用smsto短信接口的函数demo示例
2016/07/13 PHP
微信公众号开发客服接口实例代码
2016/10/21 PHP
模拟select的代码
2011/10/19 Javascript
javascript数组快速打乱重排的方法
2014/01/02 Javascript
jquery使用remove()方法删除指定class子元素
2015/03/26 Javascript
JavaScript中字符串拼接的基本方法
2015/07/07 Javascript
深入浅析JavaScript系列(13):This? Yes,this!
2016/01/05 Javascript
Angular的事件和表单详解
2016/12/26 Javascript
80%应聘者都不及格的JS面试题
2017/03/21 Javascript
Ionic项目中Native Camera的使用方法
2017/06/07 Javascript
js实现图片粘贴上传到服务器并展示的实例
2017/11/08 Javascript
微信小程序实现购物页面左右联动
2019/02/15 Javascript
实例详解vue中的$root和$parent
2019/04/29 Javascript
jquery.tagsinput.js实现记录checkbox勾选的顺序
2019/09/21 jQuery
vue实现路由不变的情况下,刷新页面操作示例
2020/02/02 Javascript
JS removeAttribute()方法实现删除元素的某个属性
2021/01/11 Javascript
Python3.2中的字符串函数学习总结
2015/04/23 Python
linux平台使用Python制作BT种子并获取BT种子信息的方法
2017/01/20 Python
Python实现PS滤镜Fish lens图像扭曲效果示例
2018/01/29 Python
基于anaconda下强大的conda命令介绍
2018/06/11 Python
详解利用python+opencv识别图片中的圆形(霍夫变换)
2019/07/01 Python
把django中admin后台界面的英文修改为中文显示的方法
2019/07/26 Python
pyhton中__pycache__文件夹的产生与作用详解
2019/11/24 Python
python在一个范围内取随机数的简单实例
2020/08/16 Python
英国时尚运动品牌的合集:The Sports Edit
2017/12/20 全球购物
Easy Spirit官网:美国休闲鞋履中的代表品牌
2019/04/12 全球购物
Linux的文件类型
2012/03/07 面试题
财务管理职业生涯规划范文
2013/12/27 职场文书
孕妇离婚协议书范本
2014/11/20 职场文书
体育教师个人工作总结
2015/02/09 职场文书
因家庭原因离职的辞职信范文
2015/05/12 职场文书
Python实现归一化算法详情
2022/03/18 Python