可以使用opencv-python库来处理MP4视频并抽取帧。以下是一个从MP4视频中抽取10帧并保存到本地的Python程序:
import cv2
import os
import math
def extract_frames(video_path, output_dir, num_frames=10):
“”"
从MP4视频中抽取指定数量的帧并保存
参数:
video_path: MP4视频文件路径
output_dir: 帧图片保存目录
num_frames: 要抽取的帧数,默认10
"""
# 创建输出目录(如果不存在)
os.makedirs(output_dir, exist_ok=True)
# 打开视频文件
cap = cv2.VideoCapture(video_path)
# 检查视频是否成功打开
if not cap.isOpened():
print(f"错误:无法打开视频文件 {video_path}")
return
# 获取视频总帧数
total_frames = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))
print(f"视频总帧数: {total_frames}")
# 计算需要抽取的帧的位置(均匀分布)
if total_frames < num_frames:
print(f"警告:视频帧数({total_frames})少于需要抽取的帧数({num_frames}),将抽取所有帧")
num_frames = total_frames
# 计算帧间隔
interval = math.floor(total_frames / num_frames)
extracted_count = 0
frame_idx = 0
# 循环读取视频帧
while extracted_count < num_frames:
# 移动到指定帧
cap.set(cv2.CAP_PROP_POS_FRAMES, frame_idx)
# 读取帧
ret, frame = ca

最低0.47元/天 解锁文章
6261

被折叠的 条评论
为什么被折叠?



