生活中或工作中都有遇到需要将某个视频转成图片。一两个视频文件或十几个视频文件还好,但是当上百个视频文件且还不在一个文件夹下存放,还需要转好的图可以按照原来的路径存放,这就是一个麻烦又费时间的事情了。试着在网上找了代码,但都运行不起来,因此写了这么个程序来批量处理这些视频文件。
编码语言:python python3
文件类型:avi
目录结构:D:/a/b/c/xxxxx.avi,a层目录下有多个不同的b文件夹,b层目录下又有多个不同的c文件夹,c文件夹下又有多个不同的avi文件
需求:avi视频按帧转图,转出来的图片需要放在与avi文件同名的文件夹下,并且目录结构必须保证不变。
import cv2
import os
# 递归方法访问文件并按照文件夹及文件名称新建对应的新文件夹
# 转换avi文件为jpg图,当前程序缺点:视频切割的图片有重复图片存在。
def close_VideoCapture(cap):
cap.release()
def load_avi_file_sid_cid_time(video_filename):
try:
cap = cv2.VideoCapture(video_filename)
if cap.isOpened():
return cap
else:
print("load avi file failed!\n")
return None
except:
return None
def search_avi_and_get_frame(path1,savepath):
for filename in os.listdir(path1):
if os.pa