Shell 如何获取文件的持续时间(毫秒)

Shell 如何获取文件的持续时间(毫秒),shell,avconv,Shell,Avconv,我正在尝试以毫秒为单位获取音频文件(.wav)的持续时间 我已经看到一些命令行使用了ffmpeg,但是这个库在我的Ubuntu版本中被弃用了(remplace byavconv),我没有找到任何内容 我可以通过运行avconv-I来获取持续时间,但我要在毫秒内查找结果将此作为一个小型独立.sh文件编写: file="$1" info=$(sox $file -n stat 2>&1) full_length=$(echo "$info" | sed -n 's#^Length (s

我正在尝试以毫秒为单位获取音频文件(.wav)的持续时间

我已经看到一些命令行使用了
ffmpeg
,但是这个库在我的Ubuntu版本中被弃用了(remplace by
avconv
),我没有找到任何内容


我可以通过运行
avconv-I
来获取持续时间,但我要在
毫秒内查找结果

将此作为一个小型独立
.sh
文件编写:

file="$1"
info=$(sox $file -n stat 2>&1)
full_length=$(echo "$info" | sed -n 's#^Length (seconds):[^0-9]*\([0-9.]*\).*$#\1#p')
seconds=$(echo $full_length | cut -f1 -d.)

if [ -n "$seconds" ]; then
    milliseconds=$(echo $full_length | cut -f2 -d. | cut -c -3)

    result=$(($seconds * 1000))
    result=$(($result + $milliseconds))

    echo "$result"
    exit
fi

echo "0"
exit
就像

new-file.sh test.wav
获得类似(持续时间,毫秒)的结果

(您可以找到我使用的所有源代码的完整代码)

1337