如何以毫秒为单位获取文件的持续时间

时间:2013-10-06 17:49:17

标签: shell avconv

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

我已经看到一些使用ffmpeg的命令行,但是在我的Ubuntu版本上不推荐使用这个库(由avconv重新提供),我没有找到任何内容。

我可以通过运行avconv -i <file>获得持续时间,但我正在milliseconds中查找结果。

1 个答案:

答案 0 :(得分:0)

将其写成一个小的独立.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

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

相关问题