【发布时间】:2013-01-29 18:13:51
【问题描述】:
我正在尝试设置一个 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,就像我在一些脚本中看到的那样,但仍然没有...
【问题讨论】:
-
脚本是否向标准错误输出任何内容?
-
不确定如何使用stderr,但是当我将它添加到代码末尾时,在回显之后...它告诉我第4行:找不到ffmpeg命令
-
它在我的终端中运行良好只是无法弄清楚为什么它不能在这个 shell 脚本中工作
-
题外话,但您的 ffmpeg 命令可以改进。 ffmpeg 命令行使用问题更适合Super User(因为 SO 是特定于编程的)。我建议在 SU 上问一个“如何改进这个命令以进行网络播放”的问题。
-
感谢您的信息...我从没想过要问...在使用 stderr 后它也可以正常工作,这导致我需要 ffmpeg 的绝对路径