从 Shell 脚本 /bin/sh 运行 FFMPEG

Chr*_*eau 0 shell ffmpeg sh

我正在尝试设置一个 Shell 脚本以在自动化监视文件夹中工作...

除了 Run Shell Scrip 部分之外,一切正常...

本质上,当文件出现在监视文件夹中时,它会运行调用 FFMPEG 的 shell 脚本,然后将文件移动到存档文件夹以安全保存。然而现在自动化告诉我一切正常,但现在正在创建文件。

我将 Shell 设置为 /bin/sh 并将 Pass 输入设置为参数

这是我的脚本:

for f in "$@"
do
name=$(basename "$f")
dir=$(dirname "$f")
ffmpeg -i "$f" -b 250k -strict experimental -deinterlace -vcodec h264 -acodec aac "$dir/mp4/${name%.*}.mp4"
echo "$dir/mp4/${name%.*}.mp4"
done
Run Code Online (Sandbox Code Playgroud)

它确实回显了正确的文件名,但实际上并不运行 ffmpeg

我已经尝试-exec在它之前添加,就像我在一些脚本中看到的那样,但仍然没有......

小智 5

FFmpeg 在运行时搜索 STDIN。这是为了允许用户点击q停止编码以及其他任务。这可能会导致脚本出现问题。也许要解决此问题,请尝试以下操作:

# notice --+
#          |
#          v
ffmpeg -nostdin -i "$f" -b 250k -strict experimental -deinterlace \
  -vcodec h264 -acodec aac "$dir/mp4/${name%.*}.mp4"
Run Code Online (Sandbox Code Playgroud)

OSX 上 ffmpeg 的神秘错误