如何在终端循环中 运行 ffmpeg 使用每个子目录中的文件生成视频
How to run ffmpeg in a loop in the terminal to generate videos using files from every subdirectory
我有一些目录 ./vis
,其中包含我想要循环生成视频的图像。如果我要在其中一个子目录中执行此操作,比如 ./vis/subdir1
我可以 运行:
ffmpeg -framerate 10 -pattern_type glob -i '*.jpg' out.mp4
现在我想为每个子目录生成视频,我试过这个:
for d in */; do ffmpeg -framerate 10 -pattern_type glob -i '${d}*.jpg' "${d}".mp4"; done
但是好像不行。有什么想法吗?
- '${d}*.jpg'用单引号括起来,变量
d
不插值
- "${d}".mp4" 未正确引用。此外,变量
d
包含一个尾部斜杠,必须将其删除。
那么请尝试以下操作:
for d in */; do
ffmpeg -framerate 10 -pattern_type glob -i "$d*.jpg" "${d%/}.mp4"
done
我有一些目录 ./vis
,其中包含我想要循环生成视频的图像。如果我要在其中一个子目录中执行此操作,比如 ./vis/subdir1
我可以 运行:
ffmpeg -framerate 10 -pattern_type glob -i '*.jpg' out.mp4
现在我想为每个子目录生成视频,我试过这个:
for d in */; do ffmpeg -framerate 10 -pattern_type glob -i '${d}*.jpg' "${d}".mp4"; done
但是好像不行。有什么想法吗?
- '${d}*.jpg'用单引号括起来,变量
d
不插值 - "${d}".mp4" 未正确引用。此外,变量
d
包含一个尾部斜杠,必须将其删除。
那么请尝试以下操作:
for d in */; do
ffmpeg -framerate 10 -pattern_type glob -i "$d*.jpg" "${d%/}.mp4"
done