请问如何获取 MP3 文件的采样位宽

2018-09-18 09:55:36 +08:00
 chenyu8674
迫于 DeadLine 将至问答区没人回,在这里重发一遍
手头项目有个需求,需要从一堆 MP3 文件里过滤出指定采样率 /声道 /位宽的
第一反应是用 MediaFormat,但只找到了 KEY_SAMPLE_RATE 采样率和 KEY_CHANNEL_COUNT 声道数,没有看到哪个 FLAG 是代表位宽信息的?
求对音频开发比较熟的大佬指教,感恩
5910 次点击
所在节点    Android
11 条回复
zmz125000
2018-09-18 10:03:29 +08:00
MP3 有损只有采样率没有位深?
zmz125000
2018-09-18 10:04:36 +08:00
Bit depth is only meaningful in reference to a PCM digital signal. Non-PCM formats, such as lossy compression formats, do not have associated bit depths.
https://en.m.wikipedia.org/wiki/Audio_bit_depth
aliipay
2018-09-18 10:12:52 +08:00
没记错的话,mp3 编码的只是一个数字,没有位深,解码出来 pcm 想多少位都可以
chenyu8674
2018-09-18 12:18:58 +08:00
@zmz125000 #2
@aliipay #3
感谢二位,另外问下 MP3 是否保留了压缩前源文件的位宽信息,用 mmfpeg 貌似可以读出来
msg7086
2018-09-18 13:19:12 +08:00
我猜你的 m 和 f 键互换了。

你说 ffmpeg 能读出来,有具体日志吗?
我觉得 ffmpeg 可能是去猜的。比如解码以后看看实际的有效位深是多少。
chenyu8674
2018-09-18 13:27:23 +08:00
@msg7086 #5 手抽而已,感谢
也就是说手头只有 MP3 的话是拿不到压缩前文件的位宽信息的吧
msg7086
2018-09-18 14:11:30 +08:00
我没看过 mp3 的结构,但是我觉得应该是拿不到的。
zty5678
2018-09-18 14:24:02 +08:00
"During the encoding process, the samples are quantized, so the original bit depth information is lost."
aliipay
2018-09-18 18:01:08 +08:00
@chenyu8674 你确定能读出来吗?
mcoo1997
2018-09-18 18:55:40 +08:00
拿不到 下一个
celeron533
2018-09-18 20:02:15 +08:00
Mediainfo 或者 ffmpeg 吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/490325

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX