【发布时间】:2013-10-13 06:19:55
【问题描述】:
我正在尝试以毫秒为单位获取音频文件 (.wav) 的持续时间。
我已经看到一些使用ffmpeg 的命令行,但是这个库在我的 Ubuntu 版本上已被弃用(由avconv 代替),我没有在上面找到任何东西。
我可以通过运行avconv -i <file> 获得持续时间,但我正在milliseconds 中寻找结果。
【问题讨论】:
我正在尝试以毫秒为单位获取音频文件 (.wav) 的持续时间。
我已经看到一些使用ffmpeg 的命令行,但是这个库在我的 Ubuntu 版本上已被弃用(由avconv 代替),我没有在上面找到任何东西。
我可以通过运行avconv -i <file> 获得持续时间,但我正在milliseconds 中寻找结果。
【问题讨论】:
把这个写成一个小的独立.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 上使用的所有源代码的完整代码)
【讨论】: