Чтение тегов ID3 ​​без загрузки всего файла

Возможно ли читать теги ID3 (Duration, Artist, title …) файла MP3 без необходимости загружать весь файл?

Я сделал несколько тестов, и мне удалось получить теги Artist и title, загрузив только несколько байтов файла MP3. Но я не уверен, что это возможно для Duration и других тегов.

Благодарю.

Related of "Чтение тегов ID3 ​​без загрузки всего файла"

Я просто узнал, что ffmpeg может читать теги ID3 удаленного файла, не загружая весь файл:

root@local1:/# 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 

Зависит от того, хотите ли вы читать ID3v1 или ID3v2. ID3v1 всегда находится в конце файла, поэтому, если вы заинтересованы в том, чтобы прочитать, что нет. ID3v2 обычно встречается в начале файла, но для этого нет никакой гарантии.

Поэтому, если вы не хотите случайно пропустить какие-либо теги, вам нужно прочитать весь файл. Проблема ID3v1 может быть решена путем чтения с конца файла, но это не помогает с ID3v2.