#获得视频文件的总长度时间
function gett(){
for f in "$@"
do
name=$(basename "$f")
dir=$(dirname "$f")
vtime=`ffmpeg -i "$f" 2>&1 | grep 'Duration' | cut -d ' ' -f 4 | sed s/,//`
#//与/之间为分割的字符 ,另外/后有一个空格不可省略
# t=$[t*3] #t乘以3
str=${vtime//:/ };
duration=($str);
#遍历数组
# for each in ${duration[*]}
# do
# echo $each
# done
#秒数10.08,取整
sencond1=${duration[2]}
sencond2=${sencond1%.*}
#转位整型
hour=`expr ${duration[0]} + 0`
minute=`expr ${duration[1]} + 0`
sencond=`expr $sencond2 + 0`
#时:分:秒转为秒数
duration_in_seconds=$[$hour*3600+$minute*60+$sencond]
echo $duration_in_seconds
done
}
把gett()函数写入.sh脚本,并在终端启动时加载此脚本。
打开终端:输入命令 gett 并拖入mp4视频文件,回车,即可获得视频时长。


获得的时间时118秒,视频持续时间确实时01:58。非常准确。
原创文章,作者:维尼兔,如若转载,请注明出处:https://www.v2v0.com/?p=294