【问题标题】:Manipulate track length metadata in mp3 files处理 mp3 文件中的音轨长度元数据
【发布时间】:2019-11-18 13:08:54
【问题描述】:

我必须在给定的软件上播放各种 mp3 文件,而不显示任何可能导致识别播放曲目的信息(某种测验)。为此,我想将显示的轨道长度更改为任意值。我可以轻松更改标准 ID3 标签,如“姓名”、“艺术家”等。但是,更改显示的轨道长度似乎更棘手......

编辑(在维克拉姆回应后):

到目前为止,我能够通过修改 vbr 编码的 mp3 文件中的“xing”标头来操纵显示的曲目长度。更准确地说,我使用十六进制编辑器更改了“帧数”部分中的字节,该编辑器生成的 mp3 显示了修改后的音轨长度:

Track length = Number of Frames * Samples Per Frame / Sampling Rate

文件仍在正确播放。这种方法似乎适用于一般的 winamp、vlc 播放器和 windows。不幸的是,它似乎不适用于我必须使用的专有软件。使用该软件时,由于应用了不同的计算方法,不知何故仍会识别原始曲目时长。

关于如何计算轨道持续时间的任何其他想法。被骗显示任意值?

谢谢!

【问题讨论】:

    标签: metadata mp3 id3


    【解决方案1】:

    是和否。

    大多数 .mp3 文件在 XING 标头中除了 ID3 之外都有此额外信息,其中包含文件的持续时间。

    您可以修改此标题以放置错误的信息。

    或者您可以简单地删除这个 XING 标头!

    .mp3 文件有两种类型:CBR 和 VBR。 CBR 是最常见的。因此,使用比特率信息,玩家仍然可以估计 CBR 的音频长度。

    对于 VBR,这并不总是正确的!

    因此,您拥有的音频文件很可能是没有 XING 标头的 VBR 编码 mp3。

    【讨论】:

      【解决方案2】:

      轨道长度是通过解析整个 MPEG 音频流来计算的,这是一个相当简单的过程。 XING (or similar) 标头(正确:帧)作为帮助存在,例如用于在文件中查找的附加索引,但这不是强制性的;它也之所以存在,是因为 25 年前在大多数情况下,当 VBR 被“发明”时,完全解析文件并将相关数据保存在内存中需要太多的性能。元数据,您可以在其中定义不正确的轨道长度(如TLEN frame thru ID3v2)也不是强制性的。

      所以:这是不可能的。您宁愿找到选择性能而不保证他们发现的一切的软件/播放器。我也没有想到其他文件/流格式,其中轨道长度是强制性的,不能通过解析文件来计算。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-08-27
        • 2010-09-12
        • 1970-01-01
        • 2013-09-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-12
        相关资源
        最近更新 更多