找回密码
 立即注册
搜索
查看: 1095|回复: 7

[求助] 如何批量给视频连续截图?

[复制链接]
     
发表于 2024-5-21 08:55 来自手机 | 显示全部楼层 |阅读模式
就比如现在有很多个视频素材在一个文件夹里,每个视频几十秒到几分钟不等,我希望能够通过图片快速定位到目标视频,比如每个视频每隔15秒截一个图,截图命名就是原视频名字加时间轴后缀。

比如原文件夹内只有视频:
mov1001.mp4
mov1002.mp4
mov.1003.mp4
...

经过处理后的文件夹变成视频和图片混排:
mov1001.mp4
mov1001 - 0015.jpg  // 代表在第15秒截图
mov1001 - 0030.jpg  // 代表在第30秒截图
mov1002.mp4
mov1002 - 0015.jpg
mov1003.mp4
mov1003 - 0015.jpg
mov1003 - 0030.jpg
mov1003 - 0045.jpg
...

windows系统,有软件能解决最好,功能类似就行,没有的话用python或者其他编程方式解决也能接受(不太熟悉视频处理,需要点拨一下)。

—— 来自 S1Fun
回复

使用道具 举报

头像被屏蔽
     
发表于 2024-5-21 09:05 来自手机 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2024-5-21 09:06 | 显示全部楼层
python脚本, 要装个ffmpeg

  1. import os
  2. import subprocess

  3. def get_video_duration(filename):
  4.     """Get the duration of the video in seconds."""
  5.     result = subprocess.run(
  6.         ["ffprobe", "-v", "error", "-show_entries", "format=duration", "-of", "default=noprint_wrappers=1:nokey=1", filename],
  7.         stdout=subprocess.PIPE,
  8.         stderr=subprocess.STDOUT
  9.     )
  10.     return float(result.stdout)

  11. def capture_screenshots(video_path, interval=15):
  12.     """Capture screenshots from the video at the specified interval."""
  13.     video_filename = os.path.basename(video_path)
  14.     video_name, _ = os.path.splitext(video_filename)
  15.     duration = get_video_duration(video_path)
  16.    
  17.     for t in range(0, int(duration), interval):
  18.         time_str = f"{t:04d}"
  19.         output_image = f"{video_name} - {time_str}.jpg"
  20.         subprocess.run(["ffmpeg", "-ss", str(t), "-i", video_path, "-vframes", "1", "-q:v", "2", output_image])

  21. def process_videos_in_folder(folder_path, interval=15):
  22.     """Process all videos in the specified folder."""
  23.     for filename in os.listdir(folder_path):
  24.         if filename.endswith((".mp4", ".mov", ".avi", ".mkv")):
  25.             video_path = os.path.join(folder_path, filename)
  26.             capture_screenshots(video_path, interval)

  27. # 设置你的视频文件夹路径
  28. video_folder = ""

  29. # 处理视频文件
  30. process_videos_in_folder(video_folder)
复制代码

评分

参与人数 1战斗力 +2 收起 理由
流浪的翅膀 + 2 好评加鹅

查看全部评分

回复

使用道具 举报

     
发表于 2024-5-21 09:11 | 显示全部楼层
老牌截图工具hypersnap,不过要收费,你得自己找xx版
免费的工具ShareX,也具备自动保存和定时截图功能
python的话有pyautogui,直接调用`pyautogui.screenshot()` 就行了
回复

使用道具 举报

发表于 2024-5-21 09:26 | 显示全部楼层
我用的是个国产素材管理软件,叫纷得
回复

使用道具 举报

     
发表于 2024-5-21 09:30 | 显示全部楼层
potplayer有连续截图

回复

使用道具 举报

     
发表于 2024-5-21 09:35 来自手机 | 显示全部楼层
这需求挺ffmpeg的
回复

使用道具 举报

     
发表于 2024-5-21 14:00 | 显示全部楼层
我记得k-lite套装(基于wmp/classic的插件组)就有这个生成连续缩略图功能,可以固定间隔生成并且把所有缩略图排列在一张大图里,一个视频就是一个总览的图片文件
忘了是不是可以生成多个图片了,晚上回去看看
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2024-6-20 10:46 , Processed in 0.144304 second(s), 8 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表