python视频批量抽帧脚本更新
原来的脚本代码:https://blog.csdn.net/JZJZ73/article/details/108851403
因项目工程需要,对原来的python视频批量抽帧脚本进行了更新,更新特点如下:
1、支持每个视频文件生成对应的单独文件夹,文件夹名字和视频名字一致,抽取的图片保存在对应的文件夹下。
2、每个视频抽帧保存到文件夹后,自动从0开始计数,保证每个视频的图片编号相互独立。
3、抽帧主程序写为了函数,方便之后其他程序的调用。
代码如下:
# -*- coding: utf-8 -*-import cv2
import os
import pdb
import numpy as np
#from glob2 import globdef vdprocess(videos_src_path,output_path):# 获取指定路径下的文件dirs = os.listdir(videos_src_path)print(dirs)#根据名称创建对应的文件夹for video_name in dirs:video_filename=video_name.split('.')[0]print(video_filename)if not os.path.exists(os.path.join(output_path, video_filename)):os.mkdir(os.path.join(output_path, video_filename))# 循环读取路径下的文件并操作print("start\n")print(videos_src_path + video_name)vc = cv2.VideoCapture(videos_src_path + video_name)# 初始化,并读取第一帧# rval表示是否成功获取帧# frame是捕获到的图像rval, frame = vc.read()# 获取视频fpsfps = vc.get(cv2.CAP_PROP_FPS)# 获取每个视频帧数frame_all = vc.get(cv2.CAP_PROP_FRAME_COUNT)# 获取所有视频总帧数# total_frame+=frame_allprint("[INFO] 视频FPS: {}".format(fps))print("[INFO] 视频总帧数: {}".format(frame_all))# print("[INFO] 所有视频总帧: ",total_frame)# print("[INFO] 视频时长: {}s".format(frame_all/fps))# if os.path.exists(outputPath) is False:# print("[INFO] 创建文件夹,用于保存提取的帧")# os.mkdir(outputPath)# 每n帧保存一张图片frame_interval = 4# 统计当前帧frame_count = 0count=0while rval:rval, frame = vc.read()if frame_count % frame_interval == 0:if frame is not None:filename = output_path + video_filename + "/0000{}.jpg".format(count)cv2.imwrite(filename, frame)count += 1print("保存图片:{}".format(filename))frame_count += 1# 关闭视频文件vc.release()print("[INFO] 总共保存:{}张图片\n".format(count))def main():videos_src_path = '/root/data/售货机数据1117/' # 提取图片的视频文件夹outputPath = "/root/data/MarketData/1117/" # 保存图片的视频文件夹vdprocess(videos_src_path,outputPath)print("done!")if __name__ == '__main__':main()
python视频批量抽帧脚本更新相关推荐
- 解决Python OpenCV 读取视频并抽帧出现error while decoding的问题
解决Python OpenCV 读取视频抽帧出现error while decoding的问题 1. 问题 2. 解决 3. 源代码 参考 1. 问题 读取H264视频,抽帧视频并保存,报错如下: [ ...
- python视频抽帧 后 前端javascript如何显示_python通过ffmgep从视频中抽帧的方法
如下所示: ffmpeg中文文档:http://linux.51yip.com/search/ffmpeg ffmpeg -i test_baofeng.wmv -y -f image2 -ss 00 ...
- python 视频抽帧_python通过ffmgep从视频中抽帧的方法
如下所示: ffmpeg中文文档:http://linux.51yip.com/search/ffmpeg ffmpeg -i test_baofeng.wmv -y -f image2 -ss 00 ...
- 对HDR视频进行抽帧,保存为OpenEXR格式的文件
HDR视频处理-对HDR视频进行抽帧,保存为OpenEXR格式的文件 HDR视频介绍 使用ffmpeg对视频进行抽帧的问题 OpenEXR格式的帧 在mkv格式的HDR视频中提取OpenEXR格式的帧 ...
- Java调用ffmpeg进行视频.H264抽帧,并保存为图片
Java调用ffmpeg进行视频.H264抽帧,并保存为图片 1. 需求 2. 解决 3. 源码 参考 1. 需求 对视频 D:\data\01-test.H264进行抽帧并保存为图片,图片命名为1. ...
- 视频怎么抽帧变成图片格式
最近有很多朋友在问,如何剪辑视频,比如对多个视频进行抽帧变成图片呢?今天小编给大家分享一个新的剪辑技巧,下面一起来试试. 所需工具 视频.图片素材若干 操作步骤 首先,要将准备好的所有视频素材都保存在 ...
- python文件名批量重命名脚本
python文件名批量重命名脚本 #encoding=utf-8 import cv2 import os import shutilbase_dir = r'文件所在的文件夹路径' SourseDi ...
- python做视频抽帧图_利用Python和ffmpeg从视频中抽帧,此方法比opencv抽帧法快。
原博文 2020-03-26 09:34 − import subprocess import os import subprocess import shutil #目录文件不存在则自动创建,存在则 ...
- python批量ping50台服务器_使用python编写批量ping主机脚本
通过使用python,编写脚本批量ping主机,验证主机是否处于活动状态 #!/usr/bin/python #auther: Jacky #date: 2016-08-01 #filename: p ...
最新文章
- docker 挂载目录_完美解决:Docker部署SpringBoot项目后图片无法访问和上传,3招搞定!...
- Hibernate之查询中get()和load()的区别,list()和iterate()的区别
- 无效字符 java_Java知识查漏补缺
- 5.jsp中动态include与静态include的区别
- Docker 学习资料
- 忠告 | 小小对Java30岁程序猿的忠告,强烈推荐!
- 一般用法(IPG写)
- 决策树之C4.5(详细版终结版)
- 自顶向下彻底理解 Java 中的 volatile 关键字
- 列表查询数据交互简写形式
- jQuery学习笔记开篇
- Clojure 学习入门(8)- 连接mongodb
- luoguP3600 随机数生成器 期望概率DP + DP优化
- abp 应用层异常处理(自动控制器中)
- 软件观念革命:交互设计精髓_电子沙盘设计主要分为哪几种?
- 网络工程初学者的学习方法及成长之路(红茶三杯)
- 念叨了一年的游戏叙事书中文版终于出了
- UI设计中面性图标设计总结
- Photoshop 2021 mac(ps 2021)新增功能
- 【Unity】关于U3d与bip骨骼适配