在嵌套目录中,从每个 MP4 帧中提取 JPG,将 JPG 保留在 MP4 的目录中

在嵌套目录中,从每个 MP4 帧中提取 JPG,将 JPG 保留在 MP4 的目录中

我有这个脚本,它为每个文件创建一个目录,并将文件移动到该目录中。

#!/bin/bash
for file in *; do
  if [[ -f "$file" ]]; then
    mkdir "${file%.*}"
    mv "$file" "${file%.*}"
  fi
done

现在,我需要“访问”其目录中的每个文件(所有 MP4),然后使用 ffmpeg 从每个帧创建一个 JPG,并将 JPG 留在该目录中。

我用 MP4 创建 JPG。

ffmpeg -i FILENAME.mp4 -y -f image2 -c:v mjpeg %03d.jpg

我不知道如何确保提取的 JPG 出现在其关联的 MP4 目录中。我想,如果我应用前面的 ffmpeg 提取,JPG 将进入更高级别的目录。

答案1

如果您无法为其ffmpeg本身指定输出目录,只需使用子 shell 在所需目录中运行,例如

( cd $directory && ffmpeg ... )

答案2

感谢您的宝贵建议。

如果您无法将输出目录指定为 ffmpeg 本身,只需使用子 shell 在所需目录中运行它,例如( cd $directory && ffmpeg ... )

这是有道理的。我不确定如何将 $directory 设置为有问题的正确目录。

我也不确定 ffmpeg 完成后如何返回到上一个目录,因为树遍历对于“cd..”来说可能太复杂

再次感谢您的热情帮助。埃里克

相关内容