我正在尝试设置一个Shell脚本以在automator监视文件夹中工作...
一切正常,但Run Shell Scrip部分除外......
基本上,当一个文件出现在watch文件夹中时,它会运行调用FFMPEG的shell脚本,然后将文件移动到一个存档文件夹以便安全保存。但是现在automator告诉我一切正常但现在正在创建文件。
我将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
,就像我在某些脚本中看到的那样,但仍然没有...
答案 0 :(得分:3)
FFmpeg在STDIN运行时搜索它。这是为了允许用户点击q
以停止编码以及其他任务。这可能会导致脚本出现问题。也许解决方法试试这个:
# notice --+
# |
# v
ffmpeg -nostdin -i "$f" -b 250k -strict experimental -deinterlace \
-vcodec h264 -acodec aac "$dir/mp4/${name%.*}.mp4"
答案 1 :(得分:1)
不确定是不是因为我在Mac OS X服务器上运行,但我想它是,我必须包含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