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 网页解析HTMLParse的实例详解
Aug 10 Python
Python使用 Beanstalkd 做异步任务处理的方法
Apr 24 Python
Python3.4 tkinter,PIL图片转换
Jun 21 Python
python 画三维图像 曲面图和散点图的示例
Dec 29 Python
python正则爬取某段子网站前20页段子(request库)过程解析
Aug 10 Python
python 定义类时,实现内部方法的互相调用
Dec 25 Python
使用Python 自动生成 Word 文档的教程
Feb 13 Python
PyCharm 在Windows的有用快捷键详解
Apr 07 Python
python中对二维列表中一维列表的调用方法
Jun 07 Python
Django QuerySet查询集原理及代码实例
Jun 13 Python
python实现xml转json文件的示例代码
Dec 30 Python
Python接口自动化之文件上传/下载接口详解
Apr 05 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中利用XML技术构造远程服务(下)
2006/10/09 PHP
php 函数中使用static的说明
2012/06/01 PHP
解析PHP中$_FILES的使用以及注意事项
2013/07/05 PHP
简介WordPress中用于获取首页和站点链接的PHP函数
2015/12/17 PHP
PHP实现页面静态化深入讲解
2021/03/04 PHP
滚动经典最新话题[prototype框架]下编写
2006/10/03 Javascript
web 页面分页打印的实现
2009/06/22 Javascript
JQuery循环滚动图片代码
2011/12/08 Javascript
Javascript 命名空间模式
2013/11/01 Javascript
关于jquery中全局函数each使用介绍
2013/12/10 Javascript
JS对话框_JS模态对话框showModalDialog用法总结
2014/01/11 Javascript
javascript日期格式化示例分享
2014/03/05 Javascript
基于replaceChild制作简单的吞噬特效
2015/09/21 Javascript
使用pm2自动化部署node项目的方法步骤
2019/01/28 Javascript
javascript实现超好看的3D烟花特效
2020/01/01 Javascript
Python去除列表中重复元素的方法
2015/03/20 Python
Python SQLite3数据库日期与时间常见函数用法分析
2017/08/14 Python
Python通过命令开启http.server服务器的方法
2017/11/04 Python
Python 内置函数memoryview(obj)的具体用法
2017/11/23 Python
基于循环神经网络(RNN)的古诗生成器
2018/03/26 Python
用uWSGI和Nginx部署Flask项目的方法示例
2019/05/05 Python
详解Python sys.argv使用方法
2019/05/10 Python
Python综合应用名片管理系统案例详解
2020/01/03 Python
python游戏开发的五个案例分享
2020/03/09 Python
关于Keras Dense层整理
2020/05/21 Python
利用keras使用神经网络预测销量操作
2020/07/07 Python
python eventlet绿化和patch原理
2020/11/21 Python
法国时尚童装网站:Melijoe
2016/08/10 全球购物
英国男士时尚购物网站:Stuarts London
2017/10/22 全球购物
美国非常受欢迎的Spa品牌:Bliss必列斯
2018/04/10 全球购物
Beauty Expert美国/加拿大:购买奢侈美容产品
2018/12/05 全球购物
大学生个人求职信范文
2013/09/21 职场文书
致100米运动员广播稿
2014/02/14 职场文书
餐厅总厨求职信
2014/03/04 职场文书
2014年青年志愿者工作总结
2014/12/09 职场文书
篮球拉拉队口号
2015/12/25 职场文书