【码农日常】将mp4转换为逐帧图片

项目场景:

拍摄了一段视频记录设备工作的状态和测量仪器的实时数据。由于测量仪器岁数比较大,不够智能,遂打算将视频转换为逐帧图片进行分析。
网上没找到现成工具,借鉴网上大神的操作方式打算用python写一个工具。


问题描述

用python写一个将mp4格式转换为逐帧图片的程序,该程序可以设置需要转换帧的步长。
将问题抛给AI。

答:
要实现这个功能,你可以使用Python中的opencv-python库,它非常适合处理视频文件和图像。下面是一个简单的示例程序,演示了如何将MP4视频按指定的帧间隔转换成图片序列。

首先,确保你已经安装了opencv-python库。如果没有安装,可以通过pip安装:

pip install opencv-python
# -*- coding: utf-8 -*-

import cv2
import os

def video_to_frames(video_path, output_folder, frame_step=1):
    """
    将视频文件转换为逐帧图片,可设置帧间隔。

    :param video_path: 视频文件路径
    :param output_folder: 输出图片的文件夹路径
    :param frame_step: 帧间隔,即每隔多少帧保存一张图片,默认为1
    """
    # 创建输出文件夹,如果不存在的话
    if not os.path.exists(output_folder):
        os.makedirs(output_folder)

    # 打开视频文件
    video = cv2.VideoCapture(video_path)
    
    # 初始化帧计数器
    frame_count = 0
    
    while True:
        # 读取下一帧
        ret, frame = video.read()
        
        # 如果读取成功,处理帧
        if ret:
            # 检查是否达到保存帧的步长
            if frame_count % frame_step == 0:
                # 构建输出图片的文件名
                image_name = f"frame_{frame_count}.jpg"
                image_path = os.path.join(output_folder, image_name)
                
                # 保存当前帧为图片
                cv2.imwrite(image_path, frame)
                print(f"Saved {image_name}")
            
            # 更新帧计数器
            frame_count += 1
        else:
            # 读取完毕,跳出循环
            break
    
    # 释放视频文件
    video.release()
    print("Frame extraction complete.")

# 示例用法
video_file = "path/to/your/video.mp4"
output_directory = "path/to/output/folder"
frame_interval = 5  # 每隔5帧保存一张图片

video_to_frames(video_file, output_directory, frame_interval)

上面的代码需要根据实际需求微调,原回答没有导入os库,需要手动添加代码。


测试:

在这里插入图片描述
打完收工。


后记:

AI真是个好东西。

相关推荐

  1. C# 使用ffmpeg图片保存mp4视频

    2024-05-14 07:12:08       21 阅读
  2. python转换视频格式mp4

    2024-05-14 07:12:08       15 阅读
  3. opencv获取视频图片

    2024-05-14 07:12:08       22 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-14 07:12:08       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-14 07:12:08       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-14 07:12:08       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-14 07:12:08       18 阅读

热门阅读

  1. 卸载RabbitMq

    2024-05-14 07:12:08       7 阅读
  2. 数据之舞:Processing中的数据可视化艺术

    2024-05-14 07:12:08       10 阅读
  3. hdfs 中 Map Tas工作机制(Hadoop,hive,hdfs)

    2024-05-14 07:12:08       12 阅读
  4. brpc之acceptor&&handler

    2024-05-14 07:12:08       10 阅读
  5. 「屏蔽更新」 Mac如何屏蔽系统更新

    2024-05-14 07:12:08       12 阅读
  6. python的tkinter模块是什么功能

    2024-05-14 07:12:08       9 阅读