2013-02-14 22 views
0

我試圖建立一個shell腳本的自動機監視文件夾內的工作...從Shell腳本運行FFmpeg的/ bin/sh的

一切工作與運行shell代息部分除外...

本質上,當一個文件出現在監視文件夾中時,它會運行調用FFMPEG的shell腳本,然後將該文件移動到一個歸檔文件夾以保持安全。然而,現在automator告訴我一切正常,但現在正在創建文件。

我已經殼牌設置爲/ bin/sh的,並通過輸入設定爲參數

這裏是我的腳本:

for f in "[email protected]" 
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

腳本是否輸出任何東西給stderr? – 2013-02-14 02:11:39

+0

不確定如何使用stderr,但是當我將它添加到代碼的末尾,回聲後...它告訴我,第4行:找不到ffmpeg命令 – 2013-02-14 02:16:55

+0

它在我的終端中運行良好,只是無法弄清楚爲什麼它不能在這個shell腳本中工作 – 2013-02-14 02:19:27

回答

1

不知道這是因爲我在Mac OS X Server上運行,但我想這是,我必須包括到FFmpeg的絕對路徑.. 。它固定它

for f in "[email protected]" 
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 
2

FFmpeg的搜索STDIN而我t正在運行。這是爲了允許用戶擊中q停止編碼,以及其他任務。這可能會導致腳本出現問題。也許,要解決試試這個:如果

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

mysterious error with ffmpeg on OSX

+0

很確定它的最新版本... ffmpeg版本1.1.2版權所有(c)2000-2013 FFmpeg開發者 構建於2013年2月6日10:44:49用gcc 4.2.1(GCC)(Apple Inc. build 5666)(dot 3) – 2013-02-14 01:57:10

+0

@LordNeckbeard修好了,謝謝 – 2015-10-19 01:36:52