Чтение метаданных из онлайн mp3-файла - PullRequest
1 голос
/ 25 марта 2011

Я хотел бы прочитать mp3 bitrate онлайн-файла MP3, например этот , желательно без полной загрузки.

Мне удалось выяснить, что ffmpeg позволяет это делать, например. вот так:

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 и продолжает выдавать мне новые сообщения об ошибках каждый раз, когда я их решаю)

Если у кого-нибудь есть какие-либо советы / ссылки / знает, где можно получить дополнительные идеи, я был бы очень благодарен!

Ответы [ 3 ]

0 голосов
/ 25 марта 2011

Я думаю, что тег id3 хранится в начале mp3-файла, вы, вероятно, захотите сначала изучить формат mp3-файла, чтобы вы знали, как хранятся данные.Затем вы начнете скачивать файл и закроете соединение, когда у вас будет достаточно данных для чтения битрейта.

Вот ссылка на спецификацию формата файла: http://www.mpgedit.org/mpgedit/mpeg_format/MP3Format.html

Вы простонужно загрузить первые 30 бит или около того, а затем разобрать его.Не слишком сложно.

0 голосов
/ 27 марта 2011

Получается - если у вас есть длина дорожки - вы можете оценить битрейт следующим образом:

u = urllib2.urlopen(url)

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

estimated_bitrate = file_size/length_secs/1000*8

для проверки по факту я использую мутаген

0 голосов
/ 25 марта 2011

Загрузите файл и используйте ваши любимые привязки id3 для Python.

...