You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows环境下批量提取视频文件单帧截图并嵌入文件名的方法

Windows环境下批量提取视频文件单帧截图并嵌入文件名的方法

我来给你分享一个在Windows下批量实现这个需求的实用方案,用FFmpeg这款强大的开源多媒体工具就能轻松搞定,步骤清晰易懂,新手也能快速上手~

第一步:准备FFmpeg工具

  • 先下载适合Windows的FFmpeg压缩包(选full build版本即可),解压到你方便的文件夹,比如C:\ffmpeg。
  • 为了后续调用方便,建议把FFmpeg的bin目录(比如C:\ffmpeg\bin)添加到系统环境变量PATH里——这样打开命令提示符就能直接用ffmpeg命令,不用每次输入完整路径。

第二步:编写批量处理的批处理脚本

在你的视频文件夹里新建一个文本文件,把下面的代码复制进去,然后将文件名改成BatchScreenshot.bat(注意后缀要从.txt改成.bat):

@echo off
setlocal enabledelayedexpansion

:: 可根据需求调整以下参数
set "FONT_SIZE=24"
set "FONT_COLOR=white"
set "TEXT_POSITION=10:10"  :: 文字左上角坐标,格式为x:y
set "SCREENSHOT_TIME=50%"   :: 取视频中间帧,也可指定具体时间如"00:00:30"

:: 遍历文件夹内常见视频格式,可自行添加更多格式(如.mov、.flv)
for %%f in (*.mkv *.mp4 *.avi *.wmv) do (
    :: 提取不含后缀的文件名
    set "FILE_NAME=%%~nf"
    :: 设置输出截图的文件名
    set "OUTPUT_FILE=!FILE_NAME!_screenshot.png"
    
    :: 调用FFmpeg提取帧并嵌入文件名
    ffmpeg -i "%%f" -ss %SCREENSHOT_TIME% -vframes 1 -vf "drawtext=fontsize=%FONT_SIZE%:fontcolor=%FONT_COLOR%:text='!FILE_NAME!':x=%TEXT_POSITION%_x:y=%TEXT_POSITION%_y" "!OUTPUT_FILE!"
    
    echo 已生成截图:!OUTPUT_FILE!
)

echo 所有截图处理完成!
pause

参数调整说明

  • FONT_SIZE:控制嵌入文字的大小,默认24号字,可按需增大或减小
  • FONT_COLOR:文字颜色,支持white、black、red等常见颜色,也可用十六进制色值如#FFFFFF
  • TEXT_POSITION:文字在截图中的位置,10:10表示距离左上角各10像素的位置
  • SCREENSHOT_TIME:截图的时间点,50%取视频中间帧,也可写成具体时间如00:00:15(第15秒)
  • 视频格式:脚本默认包含.mkv、.mp4等格式,若你的视频有其他格式,直接在for %%f in (*.mkv *.mp4 ...)里补充即可

第三步:运行脚本

把BatchScreenshot.bat放到视频文件夹里,双击运行——命令提示符窗口会逐个处理视频,完成后每个视频都会生成对应的带文件名的截图啦!

额外小提示

  • 如果不想把FFmpeg加到环境变量,也可以把ffmpeg.exe直接放到视频文件夹里,脚本里的ffmpeg改成.\ffmpeg.exe就行
  • 要是想把截图统一放到子文件夹,可在脚本开头加一句mkdir screenshots 2>nul,然后把OUTPUT_FILE改成screenshots\!FILE_NAME!_screenshot.png

备注:内容来源于stack exchange,提问作者Ken Pino

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 09:13:15