的算术,我试图削减视频到使用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