2011-03-19 159 views
5

是否可以阅读MP3文件的ID3标签(持续时间,艺术家,标题...)而无需下载整个文件?阅读ID3标签,无需下载整个文件

我做了一些测试,只能下载MP3文件的几个字节就能得到Artist和标签标签..但我不确定是否可以使用Duration和其他标签..

谢谢。

回答

7

我刚刚发现,ffmpeg的可以读取远程文件的ID3标签,而无需下载整个文件:

[email protected]:/# ffmpeg -i http://physics.ujep.cz/~mmaly/mp3/Mozart/Mass_in_C_Minor_New_by_Levin/sbory_vyssi_kvalita/01_Kyrie.mp3 
FFmpeg version 0.6-4:0.6-2ubuntu6, Copyright (c) 2000-2010 the FFmpeg developers 
    built on Oct 5 2010 22:36:53 with gcc 4.4.5 
    configuration: --extra-version=4:0.6-2ubuntu6 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-vaapi --enable-pthreads --enable-zlib --enable-libvpx --disable-stripping --enable-runtime-cpudetect --enable-gpl --enable-postproc --enable-x11grab --enable-libdc1394 --enable-shared --disable-static 
    libavutil  50.15. 1/50.15. 1 
    libavcodec 52.72. 2/52.72. 2 
    libavformat 52.64. 2/52.64. 2 
    libavdevice 52. 2. 0/52. 2. 0 
    libavfilter 1.19. 0/1.19. 0 
    libswscale  0.11. 0/0.11. 0 
    libpostproc 51. 2. 0/51. 2. 0 
[mp3 @ 0x7ae420]max_analyze_duration reached 
[mp3 @ 0x7ae420]Estimating duration from bitrate, this may be inaccurate 
Input #0, mp3, from 'http://physics.ujep.cz/~mmaly/mp3/Mozart/Mass_in_C_Minor_New_by_Levin/sbory_vyssi_kvalita/01_Kyrie.mp3': 
    Metadata: 
    TLEN   : 431046 
    TIT2   : Kyrie 
    TRCK   : 1 
    TPE1   : Mozart 
    TCON   : Classical 
    TALB   : Mass in C Minor New by Levin 
    Duration: 00:07:11.18, start: 0.000000, bitrate: 128 kb/s 
    Stream #0.0: Audio: mp3, 44100 Hz, 2 channels, s16, 128 kb/s 
At least one output file must be specified 
+0

感谢它帮助我 – 2014-12-16 06:22:51

+0

但如何获取信息? – 2014-12-21 14:25:09

2

取决于是否要读取ID3v1或ID3v2。 ID3v1总是在文件的末尾,所以如果你有兴趣阅读那个不行。 ID3v2 通常发生在文件的开头,但不能保证。

所以,如果你不想意外错过任何标签,你必须阅读整个文件。 ID3v1问题可以通过从文件末尾读取来解决,但这对ID3v2没有帮助。

+0

的ID3v2总是有10bytes的头部,并在其中定义,如果有一个页脚,也是10个字节。你看到了哪些特定的情况,让你说它可能只在文件的末尾? – nlucaroni 2011-04-07 02:08:30

+0

标签本身可能到最后 - 标签的结构如何并不重要。例如,请参阅http://code.google.com/p/mutagen/issues/detail?id=78。虽然*通常*标签在前面,但没有保证。看起来OP是OK的,从实际的角度来看这很好。 – Jon 2011-04-07 02:18:24