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))
もうまくいきません。 let: not found
I +ダブルチェックしましたが、まだ、なぜ知らない:
は、私はエラーを取得するlet "MIN-=2"
と
((MIN=MIN-2))
を交換しようとしました。私はこれで灰色の髪を取得しています。
デバッグフラグ-xでスクリプトを実行しようとしましたか? '#!/ bin/sh -x'各コマンドの結果をエコーします – bbaja42
'/bin/sh'はbashですか? – Orbling
おそらくあなたはbashを実行していないでしょうか?最初の行を '#!/ bin/bash'に変更してみてください – Martin