写了一个 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模型
所有内容均经过病毒查杀,可放心下载
此内容可能为执行脚本,软件,图像或Ai模型
所有内容均经过病毒查杀,可放心下载
免责声明
因模型可能包含 NSFW 内容,请不要将模型用于非法用途
本站点只提供模型下载,不参与制作者图片生成
因制作者生成图片造成的违法问题与本站无关
本站点只提供模型下载,不参与制作者图片生成
因制作者生成图片造成的违法问题与本站无关
评论0