的算術,我試圖削減視頻到使用FFmpeg的2分鐘短片。我正在使用Ubuntu 10.10。問題與在bash腳本
這裏是我的代碼:
#!/bin/sh
COUNTER=0
BEG=0
MIN=`ffmpeg -i ${1} 2>&1 | grep "Duration" | cut -d ' ' -f 4 | sed s/,// | cut -d ":" -f 2`
echo $MIN
((MIN=MIN-2))
before_last_dot=${1%.*};
while [ $COUNTER -lt $MIN ]; do
((BEG=COUNTER*60))
echo "MIN:${MIN}"
echo "ffmpeg -sameq -i ${1} -ss ${BEG} -t 120 ${before_last_dot}.${COUNTER}.wmv"
((COUNTER=COUNTER+2))
done
echo "ffmpeg -sameq -i ${1} -ss ${BEG} -t 120 ${before_last_dot}.${COUNTER}.wmv"
應該是ffmpeg -sameq -i ${1} -ss ${BEG} -t 120 ${before_last_dot}.${COUNTER}.wmv
。我打印它來檢查它。 $ {1}是視頻名稱。
但問題是,((COUNTER=COUNTER+2))
或((COUNTER+=2))
永遠不會奏效! COUNTER
始終爲0,BEG
總是爲0。 ((MIN=MIN-2))
從來沒有工作過。
我試圖取代((MIN=MIN-2))
與let "MIN-=2"
我得到一個錯誤:let: not found
我+ VE雙重檢查,但仍然不知道爲什麼。這件事我得到了灰頭髮。
您是否嘗試過與運行調試標誌-x腳本? '#!/ bin/sh -x'它會回顯每個命令的結果 – bbaja42
是'/ bin/sh' bash? – Orbling
也許你甚至沒有運行bash?嘗試將第一行改爲'#!/ bin/bash' – Martin