Python批量视频分帧与保存实现指南

凌晨两点半
凌晨两点半
发布时间:2026-10-13| 7人浏览过
原创

本文介绍如何利用Python和OpenCV库实现视频批量分帧功能。通过遍历指定目录下的视频文件,按顺序提取每一帧图像并保存至本地文件夹。代码包含路径配置、文件排序及循环处理逻辑,适用于需要预处理视频数据的场景。

Python批量视频分帧实现概述

本文详细介绍如何使用Python脚本将视频逐帧拆分,并将每一帧图像保存至本地存储。该方案主要依赖OpenCV库完成核心处理,因此在执行代码前,请确保环境中已正确安装OpenCV相关依赖包。以下是实现该功能的核心代码片段:

核心代码与注释解析


import os 
import cv2
 
videos_src_path = '/home/shao/violence_detection_code/Movies_Dataset/fights'
videos_save_path = '/home/shao/violence_detection_code/Movies_Dataset/fights_pic'
 
videos = os.listdir(videos_src_path)
videos.sort(key=lambda x:int(x[5:-4]))
 
i = 1
 
for each_video in videos:
 if not os.path.exists(videos_save_path + '/' + str(i)):
 os.mkdir(videos_save_path + '/' + str(i))
 each_video_save_full_path = os.path.join(videos_save_path,str(i))+'/'
 each_video_full_path = os.path.join(videos_src_path,each_video)
 cap = cv2.VideoCapture(each_video_full_path)
 frame_count = 1
 success = True
 
 while(success):
 success,frame = cap.read()
 if success==True:
 cv2.imwrite(each_video_save_full_path + "frame%d.jpg" % frame_count,
 frame)
 frame_count = frame_count + 1
 i = i + 1
 
 cap.release()

以下是对上述代码的具体注释说明:

首先,代码的第1至第2行用于导入必要的Python库,包括操作系统接口和视频处理模块。

接着,第4行和第5行分别定义了源视频文件的存放路径以及处理后视频帧的保存路径。这里特别指出,路径指向的是一个包含多个视频文件(如XXX.avi格式)的文件夹。若只需处理单个视频,可对路径配置进行相应简化调整。

第7行代码负责获取源目录下所有视频文件的名称列表并赋值给变量videos。第8行是一个可选步骤,用于对视频列表进行排序。通过lambda表达式提取文件名中第5个字符到倒数第4个字符之间的部分作为排序依据,例如对于格式为newfi1.avi、newfi2.avi的视频,此操作可确保按数字1、2、3的顺序依次提取视频帧。

随后的代码逻辑通过循环遍历每一个视频文件,逐个提取其内部的所有视频帧,并将这些帧图像保存至指定的输出文件夹中。

至此,本文关于视频批量分帧与保存的讲解结束。希望上述内容能对读者的学习或工作提供帮助,欢迎继续关注与支持本站发布的更多技术文章。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。