Windows 11 视频自动批量截图并存储在文件夹内

写了一个 Python 脚本,大概功能如下:
将文件夹内视频按时长进行截图并且存储在文件夹内。直接用文本说明看着有些头晕,下面来张图片示意一下

前期准备:
1. 需要安装 Python 程序,如未安装可参考 Windows 11 应用商店安装 Python
2. 需要安装 FFmpeg 程序,如未安装可参考 Windows 11 安装 FFmpeg 最新版

在需要视频截图的主文件夹创建一个 txt 文本,然后将下面的代码复制进去后将后缀修改为 py

import subprocess
import os

def extract_frames(video_path, output_dir, num_frames):
    # 创建输出目录
    os.makedirs(output_dir, exist_ok=True)
    
    # 使用 FFmpeg 获取视频时长
    ffprobe_cmd = ['ffprobe', '-v', 'error', '-show_entries', 'format=duration', '-of', 'default=noprint_wrappers=1:nokey=1', video_path]
    duration = float(subprocess.check_output(ffprobe_cmd).decode().strip())
    
    # 确保提取帧数不会超过视频的总时长
    if num_frames > duration:
        num_frames = int(duration)
        print(f"视频长度为 {duration} 秒,帧数调整为 {num_frames}。")

    # 计算时间间隔
    interval = duration / (num_frames + 1)

    # 提取帧
    for i in range(1, num_frames + 1):
        time = i * interval
        minutes = int(time // 60)
        seconds = int(time % 60)
        base_name = os.path.basename(video_path)
        name, ext = os.path.splitext(base_name)
        output_file = os.path.join(output_dir, f'{name}_time_{minutes:02d}m{seconds:02d}s.jpg')
        ffmpeg_cmd = ['ffmpeg', '-ss', str(time), '-i', video_path, '-vframes', '1', '-q:v', '2', output_file]
        subprocess.run(ffmpeg_cmd)

if __name__ == "__main__":
    # 获取当前文件夹下的所有子文件夹
    current_dir = os.getcwd()
    subdirs = [os.path.join(current_dir, d) for d in os.listdir(current_dir) if os.path.isdir(os.path.join(current_dir, d))]

    # 询问用户需要截取的帧数
    num_frames = int(input("请输入需要截取的帧数: "))

    # 对每个子文件夹中的视频文件进行截图
    for subdir in subdirs:
        video_files = [f for f in os.listdir(subdir) if os.path.isfile(os.path.join(subdir, f))]
        for video_file in video_files:
            video_path = os.path.join(subdir, video_file)
            video_output_dir = os.path.join(current_dir, os.path.basename(subdir) + '_frames', os.path.splitext(video_file)[0] + os.path.splitext(video_file)[1][1:])
            extract_frames(video_path, video_output_dir, num_frames)

现在运行脚本,右键主文件夹,然后选择 Open in Terminal

然后在弹出的窗口中输入 python 后将 Python 脚本拖入进去,大概代码如下

PS C:\Users\losto\OneDrive\桌面\视频> python C:\Users\losto\OneDrive\桌面\视频\将文件夹内视频进行截图并且存储在文件夹内.py

然后回车,程序会问你需要截取几张图。输入需要截取的张数后回车即可。比如输入20,程序就会将视频的总时长除以20,然后截取出20张。另外,如果视频的总时长只有15秒,那么一共就会截取15张

再次回车后即可开始截图。程序会自动创建文件夹,并且将截取的图片存储在其中

资源下载
下载地址1立即下载
常见问题
123盘资源下载
本站提供 123云盘 资源链接
可无登入直接下载
安全声明
如文章内提供下载内容
此内容可能为执行脚本,软件,图像或Ai模型
所有内容均经过病毒查杀,可放心下载
免责声明
因模型可能包含 NSFW 内容,请不要将模型用于非法用途
本站点只提供模型下载,不参与制作者图片生成
因制作者生成图片造成的违法问题与本站无关
0

评论0

没有账号?注册  忘记密码?