0

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

除了 Run Shell Scrip 部分外,一切都有效......

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

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

这是我的脚本:

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

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

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

4

2 回答 2

4

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

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

OSX上ffmpeg的神秘错误

于 2013-02-14T01:44:01.153 回答
1

不确定是不是因为我在 Mac OS X Server 上运行,但我想是的,我必须包含 ffmpeg 的绝对路径...修复了它

for f in "$@"
do
name=$(basename "$f")
dir=$(dirname "$f")
/opt/local/bin/ffmpeg -i "$f" -b 250k -strict experimental -deinterlace -vcodec h264 -acodec aac "$dir/mp4/${name%.*}.mp4"
echo "$dir/mp4/${name%.*}.mp4"
done
于 2013-02-14T02:43:09.847 回答