Horcrux Asked: 2025-02-09 03:41:53 +0800 CST2025-02-09 03:41:53 +0800 CST 2025-02-09 03:41:53 +0800 CST 如何将带字幕的视频文件中的字幕场景导出为 JPEG 文件? 772 我有一个视频文件 MP4 及其 SRT 文件。我想将带字幕的场景导出到 JPEG 文件中。 我是 Windows 用户。 类似于示例图片。我需要一个软件,它可以获取视频文件及其字幕,并仅将带字幕的场景提取到 JPEG 文件中。 video 1 个回答 Voted Best Answer Ricardo Bohner 2025-02-10T02:44:02+08:002025-02-10T02:44:02+08:00 由于我不是 ffmpeg 专家,因此可能有比这更好的解决方案,但我能想到的是在字幕文件中搜索正确的时间,然后使用ffmpeg提取该帧。 如果你没有,请先安装ffmpeg 接下来确保它的路径包含在用户路径变量中 现在使用以下代码创建一个批处理脚本: @echo off SetLocal EnableDelayedExpansion CD "%~dp1" if not exist "%~n1*" md "%~n1" for /f "tokens=1-2 delims=, " %%a in ('type "%~n1.srt" ^|find /i "-->"') do ( set /a "Counter+=1" set "CounterZ=000000!Counter!" ffmpeg -copyts -ss %%a.%%b -i "%~1" -vf "subtitles='%~n1.srt'" -c:v mjpeg -frames:v 1 -y "%~n1!CounterZ:~-6!.jpg" ) 退出 现在将电影拖放到批处理脚本中,但要确保字幕与电影同名....批处理脚本应该创建一个与电影同名的新文件夹,其中仅包含带有字幕的屏幕截图... pastebin上的批号
由于我不是 ffmpeg 专家,因此可能有比这更好的解决方案,但我能想到的是在字幕文件中搜索正确的时间,然后使用ffmpeg提取该帧。
如果你没有,请先安装ffmpeg
接下来确保它的路径包含在用户路径变量中
现在使用以下代码创建一个批处理脚本:
@echo off SetLocal EnableDelayedExpansion CD "%~dp1" if not exist "%~n1*" md "%~n1" for /f "tokens=1-2 delims=, " %%a in ('type "%~n1.srt" ^|find /i "-->"') do ( set /a "Counter+=1" set "CounterZ=000000!Counter!" ffmpeg -copyts -ss %%a.%%b -i "%~1" -vf "subtitles='%~n1.srt'" -c:v mjpeg -frames:v 1 -y "%~n1!CounterZ:~-6!.jpg" ) 退出
现在将电影拖放到批处理脚本中,但要确保字幕与电影同名....批处理脚本应该创建一个与电影同名的新文件夹,其中仅包含带有字幕的屏幕截图...
pastebin上的批号