原来的脚本代码: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视频批量抽帧脚本更新相关推荐

  1. 解决Python OpenCV 读取视频并抽帧出现error while decoding的问题

    解决Python OpenCV 读取视频抽帧出现error while decoding的问题 1. 问题 2. 解决 3. 源代码 参考 1. 问题 读取H264视频,抽帧视频并保存,报错如下: [ ...

  2. python视频抽帧 后 前端javascript如何显示_python通过ffmgep从视频中抽帧的方法

    如下所示: ffmpeg中文文档:http://linux.51yip.com/search/ffmpeg ffmpeg -i test_baofeng.wmv -y -f image2 -ss 00 ...

  3. python 视频抽帧_python通过ffmgep从视频中抽帧的方法

    如下所示: ffmpeg中文文档:http://linux.51yip.com/search/ffmpeg ffmpeg -i test_baofeng.wmv -y -f image2 -ss 00 ...

  4. 对HDR视频进行抽帧,保存为OpenEXR格式的文件

    HDR视频处理-对HDR视频进行抽帧,保存为OpenEXR格式的文件 HDR视频介绍 使用ffmpeg对视频进行抽帧的问题 OpenEXR格式的帧 在mkv格式的HDR视频中提取OpenEXR格式的帧 ...

  5. Java调用ffmpeg进行视频.H264抽帧,并保存为图片

    Java调用ffmpeg进行视频.H264抽帧,并保存为图片 1. 需求 2. 解决 3. 源码 参考 1. 需求 对视频 D:\data\01-test.H264进行抽帧并保存为图片,图片命名为1. ...

  6. 视频怎么抽帧变成图片格式

    最近有很多朋友在问,如何剪辑视频,比如对多个视频进行抽帧变成图片呢?今天小编给大家分享一个新的剪辑技巧,下面一起来试试. 所需工具 视频.图片素材若干 操作步骤 首先,要将准备好的所有视频素材都保存在 ...

  7. python文件名批量重命名脚本

    python文件名批量重命名脚本 #encoding=utf-8 import cv2 import os import shutilbase_dir = r'文件所在的文件夹路径' SourseDi ...

  8. python做视频抽帧图_利用Python和ffmpeg从视频中抽帧,此方法比opencv抽帧法快。

    原博文 2020-03-26 09:34 − import subprocess import os import subprocess import shutil #目录文件不存在则自动创建,存在则 ...

  9. python批量ping50台服务器_使用python编写批量ping主机脚本

    通过使用python,编写脚本批量ping主机,验证主机是否处于活动状态 #!/usr/bin/python #auther: Jacky #date: 2016-08-01 #filename: p ...

最新文章

  1. docker 挂载目录_完美解决:Docker部署SpringBoot项目后图片无法访问和上传,3招搞定!...
  2. Hibernate之查询中get()和load()的区别,list()和iterate()的区别
  3. 无效字符 java_Java知识查漏补缺
  4. 5.jsp中动态include与静态include的区别
  5. Docker 学习资料
  6. 忠告 | 小小对Java30岁程序猿的忠告,强烈推荐!
  7. 一般用法(IPG写)
  8. 决策树之C4.5(详细版终结版)
  9. 自顶向下彻底理解 Java 中的 volatile 关键字
  10. 列表查询数据交互简写形式
  11. jQuery学习笔记开篇
  12. Clojure 学习入门(8)- 连接mongodb
  13. luoguP3600 随机数生成器 期望概率DP + DP优化
  14. abp 应用层异常处理(自动控制器中)
  15. 软件观念革命:交互设计精髓_电子沙盘设计主要分为哪几种?
  16. 网络工程初学者的学习方法及成长之路(红茶三杯)
  17. 念叨了一年的游戏叙事书中文版终于出了
  18. UI设计中面性图标设计总结
  19. Photoshop 2021 mac(ps 2021)新增功能
  20. 【Unity】关于U3d与bip骨骼适配

热门文章

  1. Linux 使用 cURL 查看天气
  2. 【左右挑货控件】进销存控件的使用
  3. 制作浮雕效果等高线的原理与实践
  4. 在linux上配置Maven环境变量
  5. 修改盒子上的host文件
  6. 微波遥感2:微波与物质的相互作用
  7. Word论文中关于章、节、图、表、公式自动编号及引用
  8. linux实现复制文件的两种方法
  9. ElasticSearch工作原理解读及一些思考
  10. 讯飞:糖尿病遗传风险预测Coggle挑战赛公开