我有这个bash脚本,该脚本正在使用某些名称的子文件夹中查找mp4文件,并将这些视频的帧保存为jpeg。
#!/bin/bash
find ../folder -type f -iname '*C00*.mp4' | xargs -I %% ffmpeg -i %% -vf fps=1 -q:v 3 "../frames/_${i%.*}_frame%d.jpg"
问题在于,每次脚本完成一个视频时,下一个视频的.jepg输出文件都会覆盖现有视频。
如何防止这种情况?
答案 0 :(得分:0)
这是一个快速的选项卡,它可以创建一个目录,该目录的名称与输入文件的名称相同,并且扩展名的所有.mp4
都会被删掉。
#!/bin/bash
find ../folder -type f -iname '*C00*.mp4' -print0 |
xargs -r0 sh -c 'for f; do
d="../frames/${f%.[Mm][Pp]4}"
mkdir "$d" || { echo "$d already exists" >&2; exit 123; }
ffmpeg -i "$f" -vf fps=1 -q:v 3 "$d/frame%d.jpg"
done' _