You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python加载并处理.avi格式视频:观看及提取帧数组

用Python处理AVI视频:播放与提取帧数组

依赖安装

首先需要安装OpenCV库,执行以下命令:

pip install opencv-python

1. 播放AVI视频

使用OpenCV的VideoCapture类读取视频并逐帧显示,代码如下:

import cv2

# 初始化视频捕获对象,替换为你的视频路径
cap = cv2.VideoCapture("your_video.avi")

# 检查视频是否成功打开
if not cap.isOpened():
    print("无法打开视频文件")
    exit()

# 循环读取并显示每一帧
while True:
    # ret表示读取是否成功,frame是当前帧的数组
    ret, frame = cap.read()
    
    # 读取失败则退出循环(视频播放完毕)
    if not ret:
        break
    
    # 显示当前帧
    cv2.imshow("Video Playback", frame)
    
    # 按下q键可提前退出播放
    if cv2.waitKey(25) & 0xFF == ord('q'):
        break

# 释放资源
cap.release()
cv2.destroyAllWindows()
  • cv2.waitKey(25)控制播放帧率,25毫秒每帧对应约40FPS,可根据需求调整数值
  • 务必替换your_video.avi为实际的视频文件路径

2. 获取视频的每一帧(数组形式)

通过OpenCV读取所有帧并存储到列表中,每一帧都是numpy数组(形状为(高度, 宽度, 通道数),通道顺序为BGR):

import cv2

cap = cv2.VideoCapture("your_video.avi")

if not cap.isOpened():
    print("无法打开视频文件")
    exit()

frames = []

while True:
    ret, frame = cap.read()
    if not ret:
        break
    # 将当前帧添加到列表
    frames.append(frame)

cap.release()

# 查看提取结果
print(f"共提取到 {len(frames)} 帧")
if frames:
    print(f"单帧数据形状: {frames[0].shape}")
  • 提取的帧可直接用于后续图像处理(比如转换为RGB格式、特征提取等)
  • 若视频体积较大,建议逐帧处理而非全部存储,避免内存占用过高

内容的提问来源于stack exchange,提问作者Naman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 23:24:32