网络编程
位置:首页>> 网络编程>> Python编程>> python+openCV对视频进行截取的实现

python+openCV对视频进行截取的实现

作者:ChristmasBoy  发布时间:2023-01-18 22:27:53 

标签:openCV,视频,截取

使用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

来源:https://segmentfault.com/a/1190000038298546

0
投稿

猜你喜欢

  • 初识项目打开VS2015,创建Web项目,选择ASP.NET Web Application,在弹出的窗口里选择ASP.NET 5 Webs
  • Oracle 背景资料 在介绍 Oracle9i 之前我们先介绍一些关于Oracle 公司的资料,让各位朋友更多了解 Oracle。 197
  • 复制目录: 包含多层子目录方法: 递归, 深度遍历,广度遍历深度遍历&广度遍历:思路:1.获得源目录子级目录,并设置目标目录的子级路
  • 需求:需求简单:但是感觉最后那部分遍历有意思:S型数组赋值,考虑到下标,简单题先实现个差不多的m = 5cols = 9rows = 4nu
  • 本文实例讲述了Python快速排序算法。分享给大家供大家参考,具体如下:快速排序的时间复杂度是O(NlogN)算法描述:① 先从序列中取出一
  • 切片是 Python 中最迷人最强大最 Amazing 的语言特性(几乎没有之一),在《Python进阶:切片的误区与高级用法》中,我介绍了
  • 分享一个关于在pytest中,如何将测试用例文件中的变量传递到fixture函数。一、交代应用场景目前组内的项目,在根目录下是有一个conf
  • 快排是python经典算法之一。1、下面讲解的是什么是快排和快排的图示。2、快排是一种解决排序问题的运算方法。3、快排的原理:在数组中任意选
  • 1.冒泡排序,相邻位置比较大小,将比较大的(或小的)交换位置def maopao(a):    for i in ran
  • 目标文件夹内有多份 Word 文件 &mdash;&mdash;【xxx涨薪通告.docx】,我们需要在这些文档的末尾处添加
  • 目前已经有很多生成html的新闻系统,但是都是用的模板,本函数实现把asp页面产生的html代码保存成为一个html文件,这样就没有必要改动
  • 注意转义字符\的使用\\,\",\$ 注意使用8进制或16进制字符表示 \xf6 echo "H\xf6me"
  • PyAutoGUI是一个Python语言的键鼠自动化库,简单来说和按键精灵的功能一样。但是因为是Python的类库,所以可以使用Python
  • 或许你已经看过很多关于CSS3动画的技术,包括前端观察之前发表的一些,那么现在就情看一看CSS3动画的魅力吧。这里是一辑47个令人瞠目结舌的
  • 自己写的一个自动完成效果,暂时没有ajax数据源,用静态数据代替。仅供喜欢JavaScript的同学们参考,代码如下<!DOCTYPE
  • 今天花了一些时间搭了一个博客系统,虽然并没有相关于界面的美化,但是发布是没问题的。开发环境操作系统:windows 7 64位 Django
  • 本文实例讲述了Python实现的爬取豆瓣电影信息功能。分享给大家供大家参考,具体如下:本案例的任务为,爬取豆瓣电影top250的电影信息(包
  • 本文实例讲述了python实现可将字符转换成大写的tcp服务器。分享给大家供大家参考。具体分析如下:下面的python代码执行后通过tcp监
  • 译者 | 豌豆花下猫声明 :本文获得原作者授权翻译,转载请保留原文出处,请勿用于商业或非法用途。有许许多多文章写了 Python 中的许多很
  • 在后台添加中一般我们都设置了一个“关键字”,而且一般输入可能如下: 娃娃,毛绒娃娃,日本充气娃娃 我们将根据这个来做,具体实现如下: 先看一
手机版 网络编程 asp之家 www.aspxhome.com