使用FFmpeg从目录中的所有视频中提取帧

我正在尝试使用FFmpeg从目录中的每个文件中每秒提取一帧。

我对单个文件使用此命令,但是我不知道如何输入目录:

ffmpeg -i "C:\input\clip1.mp4" -vf fps=1 -qscale:v 2 "C:\output\clip1\clip1A"%d.jpg

理想情况下,我希望将帧保存到如下所示的自己的文件夹中,但是我认为我可以自己解决这一问题。如果它们都以相同的前缀和顺序编号输出到相同的文件夹,那就很好。

C:\output\clip1\clip1-001.jpgclip1-002.jpg

C:\output\clip2\clip2-001.jpgclip2-002.jpg

我已经尝试了许多小时,但我仍然完全迷失了方向。任何帮助将不胜感激。

完成了!此代码会将帧输出到与它们来自的视频同名的文件夹中。这些帧将以视频名称作为前缀,并以从001开始的序列号作为后缀。因此,对于我的文件,它们吐出的是“ /clip1/clip1-001.jpg”等。

以防万一您像我一样,不知道自己在做什么,请将以下代码粘贴到记事本中,另存为“ extractframesorwhatever.bat”,然后从剪辑所在的目录运行。

for %%F in (*.mp4) do (
If not Exist "%%~nF" MkDir "%%~nF"
ffmpeg -i %%F -r 1 -qscale:v 2 %%~nF\%%~nF-%%3d.jpg
)

如果要将文件夹输出到其他位置,请更改:

If not Exist "%%~nF" MkDir "%%~nF"

对于这样的事情:

If not Exist "C:\wherever\%%~nF" MkDir "C:\wherever\%%~nF"

如果这样做,还需要更改输出(在我的示例中):

%%~nF\%%~nF-%%3d.jpg

C:\wherever\%%~nF\%%~nF-%%3d.jpg

或者,如果您要将所有框架都放在一个文件夹中。将输出中的第一个%%〜nF替换为您的首选目录。以我的示例为例,它将从C:\ wherever \ %%〜nF \ %%〜nF-%% 3d.jpg到C:\ wherever \ frames \ %%〜nF-%% 3d.jpg。您也可能想要编辑第二行以指向新位置,并阻止它创建一堆不必要的目录,或者完全删除第二行。如果删除第二行,则必须首先自己创建“ frames”文件夹。

编辑-您可能需要从文件名中删除所有空格,然后才能对其进行处理。“批量重命名实用程序”可以为您节省大量时间。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

FFMPEG 未从视频中提取所有帧

如何使用ffmpeg从视频中提取帧

使用FFMPEG将所有视频帧提取为图像

使用ffmpeg从视频中提取帧-帧准确吗?

使用 ffmpeg 从视频中提取最后一帧

使用ffmpeg从视频中提取帧-标头问题?

使用ffmpeg录制时从视频中提取帧

如何使用ffmpeg从视频中提取单个帧?

使用ffmpeg从视频中提取关键帧的索引

使用ffmpeg从视频中提取特定帧时不匹配

使用 ffmpeg 从 mp4 视频中提取 Yuv 帧

从辅助视频流FFMpeg中提取帧

使用Java中的OpenImaj从视频中提取帧

我想使用powershell在临时目录中提取给定目录中的所有.zip文件

在swift 3中从视频中提取帧

如何使用Node js通过ffmpeg从上传的视频中提取帧?

无法使用 ffmpeg 从视频中提取音轨

如何使用-r选项提取与视频中的ffmpeg提取帧相关的时间戳?

使用ffmpeg迭代地将文件夹中的所有视频文件转换为每帧图像

使用 OpenCV 将从 Deepstream 管道中提取的帧保存到视频中

从视频ffmpeg中提取Alpha

FFMPEG:提取具有视频精确帧长的音频

无法使用 C++ 和 OpenCV 从视频中提取帧

如何使用 directshowlib-2005 从视频中提取帧?

使用VLC或FFmpeg提取视频中的“每10帧之一”

使用ffmpeg从视频中提取每个音频和字幕

使用python和selenium从主页中提取所有youtube视频网址

每秒提取文件夹中所有视频的帧

FFMPEG从视频中提取1帧,从其他视频中提取连续帧,并用一个命令将后者叠加在前者上