【问题标题】:mdls command: issue with "kMDItemTotalBitRate" attribute valuesmdls 命令:“kMDItemTotalBitRate”属性值问题
【发布时间】:2012-05-01 09:44:38
【问题描述】:

全部,
我在 Mac OS X 上有一个 shell 脚本,它使用 mdls 命令获取所有媒体文件(mp3、mov、m4v 等)的总比特率元属性。我想将输出与设定的阈值 (XY Kbps) 进行比较,如果媒体文件的比特率超过 XY,则引发标志。问题是输出不表示它是 Kbps 还是比特每秒。例如,我在 2 个音频文件 test1.m4a 和 test2.mp3 上运行了 mdls 命令:

   mdls -name kMDItemTotalBitRate test1.m4a   
   Output -> kMDItemTotalBitRate = 249


   mdls -name kMDItemTotalBitRate test2.mp3   
   Output -> kMDItemTotalBitRate = 192000

在检查 iTunes 时,我看到前者的数字是 249 kbps,后者的数字是 192 kbps。如何强制mdls 命令仅以比特/秒为单位输出 kMDItemTotalBitRate,以便所有文件的输出一致并消除混淆?

【问题讨论】:

  • 我怀疑你能做到。 mdls 为您提供它拥有的数据。无论 Spotlight 导入器分析 .m4a 文件,您所看到的似乎都是一个错误。

标签: macos bash spotlight


【解决方案1】:

正如Ken Thomases 在他的评论中正确指出的那样,在使用 Spotlight 属性时,您将受到 Spotlight 导入器的支配,该导入器存储值。注意Apple’s MDItem documentation 省略了应该测量原始数值kMDItemTotalBitRate 的单位的所有指示。从逻辑上讲,人们可能会认为这是 bps,因为 bps 是基本比特率单位,但如果导入器另有决定,则无法将存储的值标准化为 bps。

依赖 Spotlight 的替代方法是使用 MediaInfo 之类的实用程序分析文件(可以使用 homebrew 安装)。命令

mediainfo '--Inform=General;%BitRate%' "/path/to/your/media file"

将返回任何supported media file 的比特率,可靠地以 bps 为单位。

【讨论】:

    猜你喜欢
    • 2012-04-19
    • 1970-01-01
    • 1970-01-01
    • 2012-11-17
    • 1970-01-01
    • 2019-01-08
    • 1970-01-01
    • 2012-06-21
    • 1970-01-01
    相关资源
    最近更新 更多