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连接池实现示例程序
Nov 26 Python
跟老齐学Python之关于循环的小伎俩
Oct 02 Python
深入理解NumPy简明教程---数组3(组合)
Dec 17 Python
python修改txt文件中的某一项方法
Dec 29 Python
初探利用Python进行图文识别(OCR)
Feb 26 Python
django删除表重建的实现方法
Aug 28 Python
python tkinter组件使用详解
Sep 16 Python
爬虫代理池Python3WebSpider源代码测试过程解析
Dec 20 Python
tensorflow ckpt模型和pb模型获取节点名称,及ckpt转pb模型实例
Jan 21 Python
pandas分批读取大数据集教程
Jun 06 Python
基于tensorflow for循环 while循环案例
Jun 30 Python
python实现图片,视频人脸识别(opencv版)
Nov 18 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 字符串函数收集
2010/03/29 PHP
php观察者模式应用场景实例详解
2017/02/03 PHP
符合W3C网页标准的iframe标签的使用方法
2007/07/19 Javascript
向左滚动文字 js代码效果
2013/08/17 Javascript
jQuery事件绑定用法详解
2016/09/08 Javascript
详解Angular2响应式表单
2017/06/14 Javascript
JQuery EasyUI的一些常用组件
2017/07/12 jQuery
用node-webkit把web应用打包成桌面应用(windows环境)
2018/02/01 Javascript
详解基于Koa2开发微信二维码扫码支付相关流程
2018/05/16 Javascript
微信小程序websocket实现聊天功能
2020/03/30 Javascript
vue.js实现回到顶部动画效果
2019/07/31 Javascript
JS实现碰撞检测效果
2020/03/12 Javascript
小程序瀑布流组件实现翻页与图片懒加载
2020/05/19 Javascript
在RedHat系Linux上部署Python的Celery框架的教程
2015/04/07 Python
Python正则表达式实现截取成对括号的方法
2017/01/06 Python
基于Python对象引用、可变性和垃圾回收详解
2017/08/21 Python
Python使用pip安装报错:is not a supported wheel on this platform的解决方法
2018/01/23 Python
python-str,list,set间的转换实例
2018/06/27 Python
Python 做曲线拟合和求积分的方法
2018/12/29 Python
python 和c++实现旋转矩阵到欧拉角的变换方式
2019/12/04 Python
python pandas移动窗口函数rolling的用法
2020/02/29 Python
Python numpy大矩阵运算内存不足如何解决
2020/11/19 Python
如何使用css3实现一个类在线直播的队列动画的示例代码
2020/06/17 HTML / CSS
详解移动端Html5页面中1px边框的几种解决方法
2018/07/24 HTML / CSS
印尼旅游网站:via
2017/11/12 全球购物
英国领先的家庭时尚品牌:Peacocks
2018/01/11 全球购物
俄罗斯达美乐比萨外送服务:Domino’s Pizza
2020/12/18 全球购物
法国购买二手电子产品网站:Asgoodasnew
2020/03/27 全球购物
Smilodox官方运动服装店:从运动服到健身配件
2020/08/27 全球购物
实习期自我鉴定
2013/10/11 职场文书
光荣入党自我鉴定
2014/01/22 职场文书
离婚协议书该怎么写
2014/10/04 职场文书
道路交通事故赔偿协议书
2014/10/24 职场文书
2015年暑期见闻
2015/07/14 职场文书
严以律己学习心得体会
2016/01/13 职场文书
浅谈golang 中time.After释放的问题
2021/05/05 Golang