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在windows下实现ping操作并接收返回信息的方法
Mar 20 Python
python之文件的读写和文件目录以及文件夹的操作实现代码
Aug 28 Python
Python爬豆瓣电影实例
Feb 23 Python
对python append 与浅拷贝的实例讲解
May 04 Python
对Python 内建函数和保留字详解
Oct 15 Python
python实现nao机器人身体躯干和腿部动作操作
Apr 29 Python
python for和else语句趣谈
Jul 02 Python
python使用flask与js进行前后台交互的例子
Jul 19 Python
Python一键查找iOS项目中未使用的图片、音频、视频资源
Aug 12 Python
python读取指定字节长度的文本方法
Aug 27 Python
Python文本处理简单易懂方法解析
Dec 19 Python
Python3.9.1中使用split()的处理方法(推荐)
Feb 07 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
ajax php传递和接收变量实现思路及代码
2012/12/19 PHP
Mysql的Root密码忘记,查看或修改的解决方法(图文介绍)
2013/06/14 PHP
解决yii2左侧菜单子级无法高亮问题的方法
2016/05/08 PHP
Laravel框架实现发送短信验证功能代码
2016/06/06 PHP
ThinkPHP中类的构造函数_construct()与_initialize()的区别详解
2017/03/13 PHP
转自Jquery官方 jQuery1.1.3发布,速度提升800%,体积保持20K
2007/08/19 Javascript
ImageZoom 图片放大镜效果(多功能扩展篇)
2010/04/14 Javascript
点击隐藏页面左栏或右栏实现js代码
2013/04/01 Javascript
js判断元素是否隐藏的方法
2014/06/09 Javascript
js星星评分效果
2014/07/24 Javascript
wangEditor编辑器失去焦点后仍然可以在原位置插入图片分析
2015/05/06 Javascript
jQuery实现的文字hover颜色渐变效果实例
2016/02/20 Javascript
基于javascript实现泡泡大冒险网页版小游戏
2016/03/23 Javascript
Bootstrap嵌入jqGrid,使你的table牛逼起来
2016/05/05 Javascript
用nodeJS搭建本地文件服务器的几种方法小结
2017/03/16 NodeJs
JS实现AES加密并与PHP互通的方法分析
2017/04/19 Javascript
vue实现条件叠加搜索的解决方法
2019/05/28 Javascript
JavaScript定时器设置、使用与倒计时案例详解
2019/07/08 Javascript
一步一步实现Vue的响应式(对象观测)
2019/09/02 Javascript
微信小程序之 catalog 切换实现解析
2019/09/12 Javascript
Python将阿拉伯数字转换为罗马数字的方法
2015/07/10 Python
matplotlib绘制符合论文要求的图片实例(必看篇)
2017/06/02 Python
Python实现随机生成手机号及正则验证手机号的方法
2018/04/25 Python
对numpy.append()里的axis的用法详解
2018/06/28 Python
python bmp转换为jpg 并删除原图的方法
2018/10/25 Python
Python 实现训练集、测试集随机划分
2020/01/08 Python
利用python实现凯撒密码加解密功能
2020/03/31 Python
利用CSS3 动画 绘画 圆形动态时钟
2018/03/20 HTML / CSS
院药学专业个人求职信
2013/09/21 职场文书
关爱残疾人演讲稿
2014/05/24 职场文书
竞选班干部演讲稿400字
2014/08/20 职场文书
2014年个人委托书范本
2014/10/13 职场文书
三十年同学聚会感言
2015/07/30 职场文书
在Django中使用MQTT的方法
2021/05/10 Python
Windows 11上手初体验:任务栏和开始菜单等迎来大改
2021/11/21 数码科技
python实现简单的三子棋游戏
2022/04/28 Python