如何快速准确获取音频文件的持续时间?

问题描述 投票:2回答:1

有许多用VBR狂野编码的音频文件没有正确的持续时间标签,命令行FFMpeg将输出以下内容:

估计比特率的持续时间,这可能是不正确的

(确实是)

使用libav,我们可以看到它是通过has_duration()中的libavformat/utils.c功能进行测试的>

我有一个音频播放器,需要使用libav获取准确的时长信息。我已尝试完全解码文件并计算解码的样本总数,这是通常的建议(也是准确的),但是对于60分钟的音频文件,这可能需要10秒钟以上的时间,这是不可接受的。

我注意到有些封闭源音频解码器和音乐播放应用程序可以立即为这些文件提供准确的持续时间。必须有一些便宜的方法来确定准确的持续时间?也许摘要或高级描述会帮助我。

[使用VBR在野外编码的许多音频文件没有正确的持续时间标签,命令行FFMpeg将输出以下内容:根据比特率估算持续时间,这可能是...

c ffmpeg decode duration libav
1个回答
0
投票
可以非常快速地“解复用”轨道,并检查每个数据包的持续时间以确定轨道的总持续时间,无需解码。
© www.soinside.com 2019 - 2024. All rights reserved.