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

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

我用来ffmpeg -i FILE_NAME -vf fps=1/1 FILE_NAME%05d.jpg -hide_banner将单个文件转换为多个图像,文件名后跟 5 个零、一个计数器,然后以 .jpg 结尾。

如何对单个文件夹中的所有文件(例如 .mov)执行相同的操作,同时保持文件命名约定相同?

我知道会有一个循环和一个*.mov来选择文件夹中的所有文件,但我迷失在命名约定部分中。

答案1

for FILE_NAME in *.mov
do
    ffmpeg -i "$FILE_NAME" -vf fps=1/1 "$FILE_NAME"%05d.jpg -hide_banner
done

这将导致输出文件名为something.mov00000.jpg.要删除.mov或任何其他文件类型结尾,您可以执行以下操作

for FILE_NAME in *.mov
do
    ffmpeg -i "$FILE_NAME" -vf fps=1/1 "${FILE_NAME%.*}"%05d.jpg -hide_banner
done

相关内容