【问题标题】:Reading metadata from online mp3-file从在线 mp3 文件中读取元数据
【发布时间】:2011-03-25 18:50:37
【问题描述】:

我想阅读在线 MP3 文件的 mp3 bitrate,f.e. this one,最好不要完整下载。

我已经能够发现 ffmpeg 允许这样做,f.e.像这样:

ffmpeg -i http://physics.ujep.cz/~mmaly/mp3/Mozart/Mass_in_C_Minor_New_by_Levin/sbory_vyssi_kvalita/01_Kyrie.mp3

但我无法找到一种可移植的方式来执行此操作。 (pyffmpeg 需要 C 编译器和 Cython 并且每次我解决一个错误时都会向我抛出新的错误消息)

如果有人有任何提示/链接/知道从哪里获得更多想法,我将非常感激!

【问题讨论】:

    标签: python audio ffmpeg mp3 metadata


    【解决方案1】:

    我认为 id3 标签存储在 mp3 文件的开头,您可能想先了解 mp3 文件格式,以便了解数据的存储方式。然后您将开始下载文件,并在您有足够的数据读取比特率时关闭连接。

    这是文件格式规范的链接:http://www.mpgedit.org/mpgedit/mpeg_format/MP3Format.html

    您只需要下载前 30 位左右,然后将其解析出来。不太难。

    【讨论】:

    • 根据this comment,元数据可能存储在不同的位置......随着网络如此多样化,并且没有一个标准来存储这些信息,并且看看 ffmpeg 已经这样做很好,我宁愿将控制权交给一段专门为我做这件事的代码,而不是重新发明轮子。
    【解决方案2】:

    事实证明 - 如果你有轨道的长度 - 你可以像这样估计比特率:

    u = urllib2.urlopen(url)
    
    meta = u.info()
    file_size = int(meta.getheaders('Content-Length')[0])
    
    estimated_bitrate = file_size/length_secs/1000*8
    

    用于检查我使用诱变剂的事实

    【讨论】:

      【解决方案3】:

      下载文件并使用您最喜欢的 Python id3 绑定。

      【讨论】:

      • 如果 SO 无法帮助我解决我的问题,这就是我要做的,但如果过去是任何指标,这不太可能发生 :)
      • 这已经足够了,而且要走的路 - 如果您不了解更多信息并且不接受有背景的人的建议,请不要投反对票。
      • 我什至没有权利对人们投反对票,我不知道是谁投的票,我认为这是没有道理的。 :(
      猜你喜欢
      • 2023-03-24
      • 1970-01-01
      • 2012-07-07
      • 2011-06-10
      • 1970-01-01
      • 2019-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多