使用 Python 和 OpenCV 库,可以轻松地将一个文件夹下的所有视频以两秒为单位进行切割,并保存中间时间的帧作为图像。

以下是一个示例代码:

import cv2
import os

# 定义函数来切割视频并保存图像
def split_and_save_video(video_path, output_folder, time_interval):
    # 读取视频文件
    video = cv2.VideoCapture(video_path)

    # 获取视频帧率
    fps = video.get(cv2.CAP_PROP_FPS)

    # 设置时间间隔(帧数)
    frame_interval = int(fps * time_interval)

    # 定义变量来计数保存的图像
    count = 0

    while True:
        # 读取视频帧
        ret, frame = video.read()

        # 如果视频帧读取失败,则退出循环
        if not ret:
            break

        # 如果计数能够被时间间隔整除,则保存图像
        if count % frame_interval == 0:
            # 构建图像保存路径
            image_path = os.path.join(output_folder, f'image_{count}.jpg')

            # 保存图像
            cv2.imwrite(image_path, frame)

        # 增加计数
        count += 1

    # 释放视频对象
    video.release()

# 文件夹路径
folder_path = 'path/to/folder'

# 输出文件夹路径
output_folder = 'path/to/output/folder'

# 时间间隔(单位:秒)
time_interval = 2

# 遍历文件夹下所有的视频文件
for file in os.listdir(folder_path):
    if file.endswith('.mp4'):
        # 构建视频文件路径
        video_path = os.path.join(folder_path, file)

        # 切割视频并保存图像
        split_and_save_video(video_path, output_folder, time_interval)

在使用上述代码时,需要将folder_path替换为包含视频文件的文件夹的路径,并将output_folder替换为图像保存的输出文件夹的路径。还需要根据需要将time_interval设置为所需的时间间隔(以秒为单位)。

请注意,上述代码假设视频文件的帧率是恒定的,并且使用的是.mp4文件格式。如果视频文件的帧率不是恒定的,或者使用其他文件格式,请相应地进行修改。

Python 视频切割并提取关键帧:每两秒保存一张图片

原文地址: https://www.cveoy.top/t/topic/psWI 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录