小编ceb*_*la 的帖子

在递归文件夹的批处理脚本中使用 mkdir 和 ffmpeg

我有许多包含 .mp4 文件的文件夹。我编写了一个脚本,它获取 mp4 文件并将它们转换为每帧 1 个 jpeg 图像。重要的是,该脚本的输出(保留文件名,末尾附加 _frame 编号)进入一个新创建的文件夹,文件基名如下:

\n
#!/bin/bash\nfor f in *.mp4; do mkdir -p "${f%.*}" && ffmpeg -i ${f} -start_number 000 "${f%.*}/${f}_%03d.jpg"; done\n
Run Code Online (Sandbox Code Playgroud)\n

我可以一次为每个父文件夹运行一个,没有问题,但我想只运行一次并让它递归运行。

\n

我将代码更改为:

\n
#!/bin/bash\nfor f in *.mp4/; do mkdir -p "${f%.*}" && ffmpeg -i ${f} -start_number 000 "${f%.*}/${f}_%03d.jpg"; done\n
Run Code Online (Sandbox Code Playgroud)\n

并尝试使用 mkdir 部分(通过添加 ./),但无论我做什么,我都会收到以下错误。

\n

mkdir:无法创建目录 \xe2\x80\x98*\xe2\x80\x99:参数无效

\n

我需要做什么才能允许 mkdir 在各自的子文件夹中创建适当的新文件夹?

\n

文件结构如下:

\n
parent folder\n    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 videos_1\n        \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 videos_1_basename_1.mp4\n        \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 videos_2_basename_2.mp4\n    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 videos_2\n        \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 videos_2_basename_1.mp4\n        \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 videos_2_basename_2.mp4\n.sh script\n
Run Code Online (Sandbox Code Playgroud)\n

bash ffmpeg

1
推荐指数
1
解决办法
926
查看次数

标签 统计

bash ×1

ffmpeg ×1