【问题标题】:How to get the duration of a file in milliseconds如何以毫秒为单位获取文件的持续时间
【发布时间】:2013-10-13 06:19:55
【问题描述】:

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

我已经看到一些使用ffmpeg 的命令行,但是这个库在我的 Ubuntu 版本上已被弃用(由avconv 代替),我没有在上面找到任何东西。

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

【问题讨论】:

标签: shell avconv


【解决方案1】:

把这个写成一个小的独立.shfile:

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 上使用的所有源代码的完整代码)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多