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同时兼容python2和python3的8个技巧分享
Jul 11 Python
编写Python脚本把sqlAlchemy对象转换成dict的教程
May 29 Python
python实现批量下载新浪博客的方法
Jun 15 Python
Python2.x版本中基本的中文编码问题解决
Oct 12 Python
Python变量和字符串详解
Apr 29 Python
Python爬虫框架Scrapy实例代码
Mar 04 Python
Python爬虫使用脚本登录Github并查看信息
Jul 16 Python
自学python的建议和周期预算
Jan 30 Python
Python实现DDos攻击实例详解
Feb 02 Python
Python切图九宫格的实现方法
Oct 10 Python
Python3将jpg转为pdf文件的方法示例
Dec 13 Python
Python urlopen()参数代码示例解析
Dec 10 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定义数组和使用示例(php数组的定义方法)
2014/03/29 PHP
php保存任意网络图片到服务器的方法
2015/04/14 PHP
总结PHP代码规范、流程规范、git规范
2018/06/18 PHP
在IE中调用javascript打开Excel的代码(downmoon原作)
2007/04/02 Javascript
jquery Firefox3.5中操作select的问题
2009/07/10 Javascript
jQuery 幻灯片插件(带缩略图功能)
2011/01/24 Javascript
判断一个变量是数组Array类型的方法
2013/09/16 Javascript
jquery插件lazyload.js延迟加载图片的使用方法
2014/02/19 Javascript
JavaScript保留两位小数的2个自定义函数
2014/05/05 Javascript
jQuery的观察者模式详解
2014/12/22 Javascript
原生javascript实现图片弹窗交互效果
2015/01/12 Javascript
JavaScript字符串删除重复字符的方法
2015/12/25 Javascript
JavaScript修改作用域外变量的方法
2016/03/25 Javascript
Node.js读写文件之批量替换图片的实现方法
2016/09/07 Javascript
jQuery点击弹出层弹出模态框点击模态框消失代码分享
2017/01/21 Javascript
JS常用倒计时代码实例总结
2017/02/07 Javascript
Postman的下载及安装教程详解
2018/10/16 Javascript
webpack打包多页面的方法
2018/11/30 Javascript
Nodejs中使用puppeteer控制浏览器中视频播放功能
2019/08/26 NodeJs
layui-table表复选框勾选的所有行数据获取的例子
2019/09/13 Javascript
Django 2.0版本的新特性抢先看!
2018/01/05 Python
使用python装饰器计算函数运行时间的实例
2018/04/21 Python
python2和python3的输入和输出区别介绍
2018/11/20 Python
python实现批量视频分帧、保存视频帧
2019/05/31 Python
python的mysql数据库建立表与插入数据操作示例
2019/09/30 Python
浅谈Python的方法解析顺序(MRO)
2020/03/05 Python
Python捕获异常堆栈信息的几种方法(小结)
2020/05/18 Python
用canvas实现图片滤镜效果附演示
2013/11/05 HTML / CSS
迟到早退检讨书
2014/02/10 职场文书
刚毕业大学生自荐信范文
2014/02/20 职场文书
结婚保证书范文
2014/04/29 职场文书
啤酒节策划方案
2014/05/28 职场文书
2014年助理政工师工作总结
2014/12/19 职场文书
《观察物体》教学反思
2016/02/17 职场文书
springboot项目以jar包运行的操作方法
2021/06/30 Java/Android
Python+Tkinter制作专属图形化界面
2022/04/01 Python