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编程中实现迭代器的一些技巧小结
Jun 21 Python
判断网页编码的方法python版
Aug 12 Python
Python编程实现的图片识别功能示例
Aug 03 Python
python thrift搭建服务端和客户端测试程序
Jan 17 Python
对Python subprocess.Popen子进程管道阻塞详解
Oct 29 Python
18个Python脚本可加速你的编码速度(提示和技巧)
Oct 17 Python
在python中使用pymysql往mysql数据库中插入(insert)数据实例
Mar 02 Python
python实现对变位词的判断方法
Apr 05 Python
Python Tornado实现WEB服务器Socket服务器共存并实现交互的方法
May 26 Python
Python如何安装第三方模块
May 28 Python
教你如何使用Python下载B站视频的详细教程
Apr 29 Python
python使用pywinauto驱动微信客户端实现公众号爬虫
May 19 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
destoon找回管理员密码的方法
2014/06/21 PHP
PHP把数字转成人民币大写的函数分享
2014/06/30 PHP
PHP htmlspecialchars()函数用法与实例讲解
2019/03/08 PHP
JS 拼图游戏 面向对象,注释完整。
2009/06/18 Javascript
基于JQuery的浮动DIV显示提示信息并自动隐藏
2011/02/11 Javascript
jQuery使用addClass()方法给元素添加多个class样式
2015/03/26 Javascript
JSON字符串转JSON对象
2015/07/31 Javascript
js仿支付宝填写支付密码效果实现多方框输入密码
2016/03/09 Javascript
AngularJS入门教程之过滤器详解
2016/08/19 Javascript
bootstrap table 表格中增加下拉菜单末行出现滚动条的快速解决方法
2017/01/05 Javascript
大白话讲解JavaScript的Promise
2017/04/06 Javascript
angularJs使用$watch和$filter过滤器制作搜索筛选实例
2017/06/01 Javascript
vue.js系列中的vue-fontawesome使用
2018/02/10 Javascript
详解多页应用 Webpack4 配置优化与踩坑记录
2018/10/16 Javascript
webstorm+vue初始化项目的方法
2018/10/18 Javascript
Nodejs中怎么实现函数的串行执行
2019/03/02 NodeJs
详解vue的数据劫持以及操作数组的坑
2019/04/18 Javascript
Vue实现微信支付功能遇到的坑
2019/06/05 Javascript
Vue函数式组件的应用实例详解
2019/08/30 Javascript
JS实现滑动插件
2020/01/15 Javascript
jquery实现聊天机器人
2020/02/08 jQuery
基于Vue sessionStorage实现保留搜索框搜索内容
2020/06/01 Javascript
全面解析JavaScript Module模式
2020/07/24 Javascript
Python中关于浮点数的冷知识
2019/09/22 Python
python3 dict ndarray 存成json,并保留原数据精度的实例
2019/12/06 Python
selenium中get_cookies()和add_cookie()的用法详解
2020/01/06 Python
Python matplotlib绘制图形实例(包括点,曲线,注释和箭头)
2020/04/17 Python
Python 防止死锁的方法
2020/07/29 Python
加工操作管理制度
2014/01/19 职场文书
京剧自荐信
2014/01/26 职场文书
社团活动总结书
2014/06/27 职场文书
灵山大佛导游词
2015/02/04 职场文书
火烧圆明园的观后感
2015/06/03 职场文书
css实现文章分割线样式的多种方法总结
2021/04/21 HTML / CSS
JS 4个超级实用的小技巧 提升开发效率
2021/10/05 Javascript
python如何将mat文件转为png
2022/07/15 Python