import os
import cv2
import shutil
def videoToImgs():
interlNum = 5 # 5
main_folder = "/myrootpath/mp4" # 视频文件路径
# 每段视频长度大概10-15s,FPS=25
# Resolution:1920X1080
dst_folder = main_folder + "_Inter" # 抽帧图像保存路径
os.makedirs(dst_folder, exist_ok=True)
video_list = os.listdir(main_folder)
for video_name in video_list:
count = 0 # 已经排到的序号
# if ".mp4" not in video_name:
# continue
video_path = os.path.join(main_folder, video_name)
print(video_path)
output_folder = os.path.join(dst_folder, video_name+"_Inter"+str(interlNum))
if os.path.exists(output_folder):
shutil.rmtree(output_folder)
os.makedirs(output_folder)
cap = cv2.VideoCapture(video_path)
print(cap)
if cap is None:
print("打开视频失败: {}".format(video_path))
continue
while 1:
ret, frame = cap.read()
# if frame is read correctly ret is True
if not ret:
print("无法读取视频:{},停止".format(video_name))
break
if count % interlNum != 0:
count += 1
continue
frame_name = os.path.join(output_folder, "{}_{}.jpg".format(video_name.split('.')[0], str(count).zfill(6)))
#frame_name = "{}_normal_{}.jpg".format(video_name, count)
cv2.imwrite(frame_name, frame)
# cv2.imencode('.jpg', frame)[1].tofile(frame_name)
count += 1
print(frame_name)
# When everything done, release the capture
cap.release()
print('finished!')
videoToImgs()
python视频抽帧工具
于 2024-06-21 18:12:11 首次发布