2011-03-19 14 views
5

È possibile leggere i tag ID3 (Durata, Artista, titolo ...) di un file MP3 senza dover scaricare l'intero file?Leggi i tag ID3 senza scaricare l'intero file

ho fatto alcuni test e sono stato in grado di ottenere i tag artista e titolo con solo il download di alcuni byte del file MP3 .. ma non sono sicuro se è possibile per Durata e altri tag ..

Grazie.

risposta

7

ho appena scoprire che ffmpeg in grado di leggere i tag ID3 di un file remoto senza dover scaricare l'intero file:

[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

grazie al suo aiuto –

+0

ma come prendere le informazioni? –

2

Dipende da se si desidera leggere ID3v1 o ID3v2. ID3v1 è sempre alla fine del file, quindi se sei interessato a leggerlo no. ID3v2 in genere si verifica all'inizio del file, ma non è garantito.

Quindi, se non si desidera perdere accidentalmente alcun tag, è necessario leggere l'intero file. Il problema ID3v1 può essere risolto leggendo dalla fine del file, ma ciò non aiuta con ID3v2.

+0

ID3v2 ha sempre un colpo di testa di 10bytes, e in essa definisce se c'è un piè di pagina, anche di 10 byte. Quali casi specifici hai visto che ti fanno dire che potrebbe essere solo alla fine di un file? – nlucaroni

+0

Il tag stesso potrebbe essere alla fine - non importa come sia strutturato il tag. Ad esempio vedi http://code.google.com/p/mutagen/issues/detail?id=78. Sebbene * di solito * il tag sia davanti, non c'è garanzia. Sembra che l'OP stia bene, il che va bene dal punto di vista pratico. – Jon

Problemi correlati