2011-03-25 47 views
1

我想讀取在線MP3文件f.e.的mp3 bitratethis one,最好不要完整地下載它。從在線mp3文件中讀取元數據

我已經能夠發現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,並在我每次解析時都會向我發送新的錯誤消息)

如果任何人有任何提示/鏈接/知道如何獲得進一步的想法,我會非常感激!

回答

0

事實證明 - 如果你有軌道的長度 - 可以估算出比特率,像這樣:

u = urllib2.urlopen(url) 

meta = u.info() 
file_size = int(meta.getheaders('Content-Length')[0]) 

estimated_bitrate = file_size/length_secs/1000*8 

爲我用誘變劑

-2

下載該文件並使用您最喜愛的Python的id3綁定。

+0

事後檢查這就是我要去如果SO不能幫助我解決我的問題,但如果過去有任何指標,這種情況不太可能發生:) – Kami 2011-03-25 19:01:28

+0

這已經夠好了,要走的路 - 如果你不知道更好,不接受有背景的人的建議,不要低估他們。 – 2011-03-25 19:15:19

+0

我甚至沒有權利降低人們的權利,我不知道是誰做的,我不認爲這是必要的。 :( – Kami 2011-03-25 19:17:46

0

我認爲id3標籤存儲在一個mp3文件的開頭,你可能要先學習mp3文件格式,以便知道數據的存儲方式。然後,您將開始下載文件,並在有足夠的數據讀取比特率時關閉連接。

這裏給FILEFORMAT規範中的一個鏈接:http://www.mpgedit.org/mpgedit/mpeg_format/MP3Format.html

你只需要下載第30位左右,然後解析出來。不是太難。

+0

根據[這個評論](http://stackoverflow.com/questions/5359279/read-id3-tags-without-downloading-the-whole-file/5359297#5359297)有元數據可能在不同的位置被存儲在網絡中如此瘋狂地多樣化以及沒有一個標準來存儲這些信息,並且看到ffmpeg已經做得如此出色,我寧願將控制權交給專門的代碼片段來完成對我來說,而不必重新發明輪子。 – Kami 2011-03-25 19:04:32