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装饰器在Django框架下去除冗余代码的教程
Apr 16 Python
WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法
Mar 16 Python
解决Python获取字典dict中不存在的值时出错问题
Oct 17 Python
Python基于mysql实现学生管理系统
Feb 21 Python
python多线程同步实例教程
Aug 11 Python
python实现的读取网页并分词功能示例
Oct 29 Python
Python实现图片添加文字
Nov 26 Python
keras读取h5文件load_weights、load代码操作
Jun 12 Python
在Keras中实现保存和加载权重及模型结构
Jun 15 Python
基于CentOS搭建Python Django环境过程解析
Aug 24 Python
selenium+python自动化78-autoit参数化与批量上传功能的实现
Mar 04 Python
Python实现byte转integer
Jun 03 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中全局变量global和$GLOBALS[]的区别分析
2012/08/06 PHP
codeigniter中测试通过的分页类示例
2014/04/17 PHP
PHP间隔一段时间执行代码的方法
2014/12/02 PHP
PHP使用Redis实现防止大并发下二次写入的方法
2017/10/09 PHP
php+redis消息队列实现抢购功能
2018/02/08 PHP
jquery中dom操作和事件的实例学习-表单验证
2011/11/30 Javascript
Jquery each方法跳出循环,并获取返回值(实例讲解)
2013/12/12 Javascript
JavaScript中的cacheStorage使用详解
2015/07/29 Javascript
认识Knockout及如何使用Knockout绑定上下文
2015/12/25 Javascript
JavaScript数组的栈方法与队列方法详解
2016/05/26 Javascript
JQuery PHP图片在线裁剪实例
2020/07/27 Javascript
Javascript实现的StopWatch功能示例
2017/06/13 Javascript
vue过渡和animate.css结合使用详解
2017/06/14 Javascript
Angular 2父子组件数据传递之@ViewChild获取子组件详解
2017/07/04 Javascript
jQuery实现手势解锁密码特效
2017/08/14 jQuery
[29:16]完美世界DOTA2联赛决赛日 Inki vs LBZS 第三场 11.08
2020/11/10 DOTA
使用Python中的线程进行网络编程的入门教程
2015/04/15 Python
python自动裁剪图像代码分享
2017/11/25 Python
python对list中的每个元素进行某种操作的方法
2018/06/29 Python
Opencv+Python实现图像运动模糊和高斯模糊的示例
2019/04/11 Python
Python 读取串口数据,动态绘图的示例
2019/07/02 Python
高考考python编程是真的吗
2020/07/20 Python
拿来就用!Python批量合并PDF的示例代码
2020/08/10 Python
西班牙汉普顿小姐:购买帆布鞋和太阳镜
2016/10/23 全球购物
意大利奢侈品购物网站:Giglio
2018/01/05 全球购物
英国领先的瓷砖专家:Walls and Floors
2018/04/27 全球购物
全球最受追捧的运动服品牌领先数字目的地:Stylerunner
2020/11/25 全球购物
出纳的岗位职责
2013/11/09 职场文书
机械制造与自动化应届生求职信
2013/11/16 职场文书
大二学生学习个人自我评价
2014/01/19 职场文书
春季运动会广播稿大全
2014/02/19 职场文书
保护地球的标语
2014/06/17 职场文书
领导干部对照检查材料
2014/08/24 职场文书
召开会议通知范文
2015/04/15 职场文书
nginx如何将http访问的网站改成https访问
2021/03/31 Servers
Python经常使用的一些内置函数
2022/04/11 Python