我目前正在编写一个小型应用程序,它利用 FFmpeg 库来解码 C++ 中的音频文件(尤其是 avformat 和 swresample)。
现在我需要音频流中的样本总数。我知道确切的数字只能通过实际解码所有帧才能找到,我只需要一个估计。这里的首选方法是什么?如何找出文件的持续时间?
这个问题中有一些关于如何从 ffmpeg 中获取信息的好信息:FFMPEG 无法显示视频的持续时间 https://stackoverflow.com/questions/12558183/ffmpeg-cant-display-the-duration-of-a-video.
要计算音频流中的样本数量,您需要三个基本信息:
- 持续时间(以秒为单位)
- 采样率(每秒采样数)
- 流中的通道数(例如,立体声为 2)
获得该信息后,流中的样本总数就是 [持续时间] * [速率] * [频道]。
请注意,这并不等于字节,因为样本可能至少为 16 位,也可能为 24 位。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)