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 相关文章推荐
Python FTP操作类代码分享
May 13 Python
解决pyinstaller打包exe文件出现命令窗口一闪而过的问题
Oct 31 Python
python实现flappy bird游戏
Dec 24 Python
django数据库自动重连的方法实例
Jul 21 Python
解决Atom安装Hydrogen无法运行python3的问题
Aug 28 Python
pycharm运行程序时看不到任何结果显示的解决
Feb 21 Python
Python 日期时间datetime 加一天,减一天,加减一小时一分钟,加减一年
Apr 16 Python
python mysql自增字段AUTO_INCREMENT值的修改方式
May 18 Python
无惧面试,带你搞懂python 装饰器
Aug 17 Python
python 如何区分return和yield
Sep 22 Python
用python实现一个简单的验证码
Dec 09 Python
python实现计算图形面积
Feb 22 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
关于文本留言本的分页代码
2006/10/09 PHP
windows下配置apache+php+mysql时出现问题的处理方法
2014/06/20 PHP
ThinkPHP登录功能的实现方法
2014/08/20 PHP
功能强大的PHP图片处理类(水印、透明度、旋转)
2015/10/21 PHP
php+ajax简单实现全选删除的方法
2016/12/06 PHP
Open and Print a Word Document
2007/06/15 Javascript
JS无法捕获滚动条上的mouse up事件的原因猜想
2012/03/21 Javascript
JavaScript判断DOM何时加载完毕的技巧
2012/11/11 Javascript
jQuery+CSS实现菜单滑动伸展收缩(仿淘宝)
2013/03/22 Javascript
JS简单的轮播的图片滚动实例
2013/06/17 Javascript
JavaScript与HTML的结合方法详解
2015/11/23 Javascript
JavaScript如何实现跨域请求
2016/08/05 Javascript
AngularJS2中一种button切换效果的实现方法(二)
2017/03/27 Javascript
vue axios登录请求拦截器
2018/04/02 Javascript
vue+iview/elementUi实现城市多选
2019/03/28 Javascript
JavaScript命令模式原理与用法实例详解
2020/03/10 Javascript
微信小程序实现可拖动悬浮图标(包括按钮角标的实现)
2020/12/29 Javascript
浅析JavaScript中的事件委托机制跟深浅拷贝
2021/01/20 Javascript
javascript实现简单页面倒计时
2021/03/02 Javascript
[43:32]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS NewBee第一场
2014/05/26 DOTA
Django中实现点击图片链接强制直接下载的方法
2015/05/14 Python
python实现从本地摄像头和网络摄像头截取图片功能
2019/07/11 Python
Python split() 函数拆分字符串将字符串转化为列的方法
2019/07/16 Python
PyCharm中关于安装第三方包的三个建议
2020/09/17 Python
python 获取剪切板内容的两种方法
2020/11/28 Python
python实现按日期归档文件
2021/01/30 Python
拥有超过850家商店的美国在线派对商店:Party City
2018/10/21 全球购物
机械系大学毕业生推荐信
2013/11/27 职场文书
六一儿童节主持词
2014/03/21 职场文书
党校个人自我鉴定范文
2014/03/28 职场文书
幼儿园大班毕业教师寄语
2014/04/03 职场文书
商业项目策划方案
2014/06/05 职场文书
领导班子专题民主生活会情况想汇报
2014/09/30 职场文书
员工自我工作评价
2015/03/06 职场文书
2019年市场部个人述职报告(三篇)
2019/10/23 职场文书
JS Canvas接口和动画效果大全
2021/04/29 Javascript