热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PythonOpencv——获取指定时间内的视频片段以及帧

参考:OpenCV截取指定时间范围内的视频(python)_Qyun_lucky_star的博客-CSDN博客importcv2defc

参考:OpenCV截取指定时间范围内的视频(python)_Qyun_lucky_star的博客-CSDN博客

import cv2def capture_video(video_path, result_video_path, video, result_video, start_time, end_time):"""功能&#xff1a;截取短视频参数&#xff1a;video_path&#xff1a;需要截取的视频路径result_video_path&#xff1a;截取后的视频存放的路径video&#xff1a;需要截取的视频的名称&#xff08;不带后缀&#xff09;result_video&#xff1a;截取了的视频的名称&#xff08;不带后缀&#xff09;start_time&#xff1a;截取开始时间&#xff08;单位s&#xff09;end_time&#xff1a;截取结束时间&#xff08;单位s&#xff09;"""# 读取视频cap &#61; cv2.VideoCapture(video_path &#43; video)# 读取视频帧率fps_video &#61; cap.get(cv2.CAP_PROP_FPS)# 设置写入视频的编码格式fourcc &#61; cv2.VideoWriter_fourcc(*"mp4v")# 获取视频宽度和高度frame_width &#61; int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))frame_height &#61; int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))# 设置写视频的对象videoWriter &#61; cv2.VideoWriter(result_video_path &#43; result_video, fourcc, fps_video, (frame_width, frame_height))# 初始化一个计数器count &#61; 0while (cap.isOpened()):# 按帧读取视频里的图片ret, frame &#61; cap.read()# 如果视频没有读取结束if ret &#61;&#61; True:# 计数器加一count &#43;&#61; 1# 截取相应时间内的视频信息if(count > (start_time * fps_video) and count <&#61; (end_time * fps_video)):# 将图片写入视屏videoWriter.write(frame)if(count &#61;&#61; (end_time * fps_video)):breakelse:# 写入视屏结束videoWriter.release()breakif __name__ &#61;&#61; &#39;__main__&#39;:video_path &#61; "./"result_video_path &#61; "result/"video &#61; "中长跑视频回放2.mp4"result_video &#61; "result_test_video.mp4"start_time &#61; 7 * 60 &#43; 0end_time &#61; 7 * 60 &#43; 6capture_video(video_path, result_video_path, video, result_video, start_time, end_time)# 切成帧"""import cv2video &#61; "./result/result_test_video.mp4"cap &#61; cv2.VideoCapture(video)frame_id &#61; 0while (cap.isOpened()):ret, frame &#61; cap.read()if ret&#61;&#61;True:cv2.imwrite(&#39;./2/&#39;&#43;str(frame_id)&#43;&#39;.jpg&#39;,frame)frame_id&#43;&#61;1else:cap.release()"""

 


推荐阅读
  • 使用Tkinter构建51Ape无损音乐爬虫UI
    本文介绍了如何使用Python的内置模块Tkinter来构建一个简单的用户界面,用于爬取51Ape网站上的无损音乐百度云链接。虽然Tkinter入门相对简单,但在实际开发过程中由于文档不足可能会带来一些不便。 ... [详细]
  • 本文介绍了如何使用Python爬取妙笔阁小说网仙侠系列中所有小说的信息,并将其保存为TXT和CSV格式。主要内容包括如何构造请求头以避免被网站封禁,以及如何利用XPath解析HTML并提取所需信息。 ... [详细]
  • 本文通过一个具体的案例,展示了如何使用 Python 爬虫技术从京东网站爬取手机的价格和参数。最近发布的 iPhone X 虽然价格昂贵,但不妨碍我们探索其他高性价比的国产手机。 ... [详细]
  • Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面Android异步处理二:使用AsyncTask异步更新UI界面Android异步处理三:Handler+Loope ... [详细]
  • 短视频app源码,Android开发底部滑出菜单首先依赖三方库implementationandroidx.appcompat:appcompat:1.2.0im ... [详细]
  • 本文介绍了 Android 开发中常用的滚动视图组件 ScrollView 和 HorizontalScrollView 的基本用法和注意事项,帮助开发者更好地处理屏幕内容超出显示范围的情况。 ... [详细]
  • 普通树(每个节点可以有任意数量的子节点)级序遍历 ... [详细]
  • 在处理大规模并发请求时,传统的多线程或多进程模型往往无法有效解决性能瓶颈问题。尽管它们在处理小规模任务时能提升效率,但在高并发场景下,系统资源的过度消耗和上下文切换的开销会显著降低整体性能。相比之下,Python 的 `asyncio` 模块通过协程提供了一种轻量级且高效的并发解决方案。本文将深入解析 `asyncio` 模块的原理及其在实际应用中的优化技巧,帮助开发者更好地利用协程技术提升程序性能。 ... [详细]
  • 在Python中,可以通过导入 `this` 模块来优雅地展示“Python之禅”这一编程哲学。该模块会将这些指导原则以一种美观的方式输出到控制台。为了增加趣味性,可以考虑在代码中对输出内容进行简单的加密或混淆处理,以提升用户体验。 ... [详细]
  • DirectShow Filter 开发指南
    本文总结了 DirectShow Filter 的开发经验,重点介绍了 Source Filter、In-Place Transform Filter 和 Render Filter 的实现方法。通过使用 DirectShow 提供的类,可以简化 Filter 的开发过程。 ... [详细]
  • Java 中的控制流与作用域
    本文详细介绍了 Java 中的控制流语句,包括块作用域、if 语句、for 循环、while 循环、do-while 循环、switch 语句以及 break 和 continue 语句的使用方法。通过具体的代码示例,帮助读者更好地理解和应用这些控制流结构。 ... [详细]
  • java解析json转Map前段时间在做json报文处理的时候,写了一个针对不同格式json转map的处理工具方法,总结记录如下:1、单节点单层级、单节点多层级json转mapim ... [详细]
  • 可参照github代码:https:github.comrabbitmqrabbitmq-tutorialsblobmasterjavaEmitLogTopic.ja ... [详细]
  • 本文介绍了如何在Spring框架中使用AspectJ实现AOP编程,重点讲解了通过注解配置切面的方法,包括方法执行前和方法执行后的增强处理。阅读本文前,请确保已安装并配置好AspectJ。 ... [详细]
  • iOS snow animation
    CTSnowAnimationView.hCTMyCtripCreatedbyalexon1614.Copyright©2016年ctrip.Allrightsreserved.# ... [详细]
author-avatar
php麟状
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有