我有许多包含 .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\nRun 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\nRun Code Online (Sandbox Code Playgroud)\n并尝试使用 mkdir 部分(通过添加 ./),但无论我做什么,我都会收到以下错误。
\nmkdir:无法创建目录 \xe2\x80\x98*\xe2\x80\x99:参数无效
\n我需要做什么才能允许 mkdir 在各自的子文件夹中创建适当的新文件夹?
\n文件结构如下:
\nparent 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\nRun Code Online (Sandbox Code Playgroud)\n