野外中有许多采用可变比特率编码的音频文件没有准确的持续时间标签,使用命令行FFMpeg会输出以下信息:
“从比特率估计持续时间,这可能不准确”
(实际上确实如此)
使用libav,我们可以看到测试是否具有持续时间信息使用了libavformat/utils.c中的has_duration()函数。
我有一个音频播放器需要使用libav获取准确的持续时间信息。我已经尝试完全解码文件并计算总解码样本数,这是通常的建议(且准确),但这会花费60分钟音频文件10秒以上,这是不可接受的。
我注意到有一些闭源音频解码器和音乐播放应用程序可以立即获得这些文件的准确持续时间。肯定存在一种廉价的方法来确定准确的持续时间?也许一小段代码或高层次描述可以帮助我。
“从比特率估计持续时间,这可能不准确”
(实际上确实如此)
使用libav,我们可以看到测试是否具有持续时间信息使用了libavformat/utils.c中的has_duration()函数。
我有一个音频播放器需要使用libav获取准确的持续时间信息。我已经尝试完全解码文件并计算总解码样本数,这是通常的建议(且准确),但这会花费60分钟音频文件10秒以上,这是不可接受的。
我注意到有一些闭源音频解码器和音乐播放应用程序可以立即获得这些文件的准确持续时间。肯定存在一种廉价的方法来确定准确的持续时间?也许一小段代码或高层次描述可以帮助我。