chenyu8674
V2EX  ›  Android

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

  •  
  •   chenyu8674 · Sep 18, 2018 · 14912 views
    This topic created in 2973 days ago, the information mentioned may be changed or developed.
    迫于 DeadLine 将至问答区没人回,在这里重发一遍
    手头项目有个需求,需要从一堆 MP3 文件里过滤出指定采样率 /声道 /位宽的
    第一反应是用 MediaFormat,但只找到了 KEY_SAMPLE_RATE 采样率和 KEY_CHANNEL_COUNT 声道数,没有看到哪个 FLAG 是代表位宽信息的?
    求对音频开发比较熟的大佬指教,感恩
    11 replies  •  2018-09-18 20:02:15 +08:00
    zmz125000
    zmz125000
    Sep 18, 2018 via Android
    1
    MP3 有损只有采样率没有位深?
    zmz125000
    zmz125000
    Sep 18, 2018 via Android❤️2
    2
    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
    aliipay
    Sep 18, 2018❤️1
    3
    没记错的话,mp3 编码的只是一个数字,没有位深,解码出来 pcm 想多少位都可以
    chenyu8674
    chenyu8674
    OP
    Sep 18, 2018
    4
    @zmz125000 #2
    @aliipay #3
    感谢二位,另外问下 MP3 是否保留了压缩前源文件的位宽信息,用 mmfpeg 貌似可以读出来
    msg7086
    msg7086
    Sep 18, 2018❤️1
    5
    我猜你的 m 和 f 键互换了。

    你说 ffmpeg 能读出来,有具体日志吗?
    我觉得 ffmpeg 可能是去猜的。比如解码以后看看实际的有效位深是多少。
    chenyu8674
    chenyu8674
    OP
    Sep 18, 2018
    6
    @msg7086 #5 手抽而已,感谢
    也就是说手头只有 MP3 的话是拿不到压缩前文件的位宽信息的吧
    msg7086
    msg7086
    Sep 18, 2018
    7
    我没看过 mp3 的结构,但是我觉得应该是拿不到的。
    zty5678
    zty5678
    Sep 18, 2018
    8
    "During the encoding process, the samples are quantized, so the original bit depth information is lost."
    aliipay
    aliipay
    Sep 18, 2018
    9
    @chenyu8674 你确定能读出来吗?
    mcoo1997
    mcoo1997
    Sep 18, 2018 via Android
    10
    拿不到 下一个
    celeron533
    celeron533
    Sep 18, 2018 via Android
    11
    Mediainfo 或者 ffmpeg 吧
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   527 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 20:23 · PVG 04:23 · LAX 12:23 · JFK 15:23
    ♥ Do have faith in what you're doing.