2012-01-28 3 views
3

У меня есть список файлов .mp3 через Интернет, и я хотел бы получить файл самого высокого качества. Качество в мультимедийных файлах равно их битовой скорости.Как определить скорость передачи в формате .mp3 без его загрузки?

Сама битовая скорость должна быть найдена в заголовках файла. Если нет, можно использовать длину аудиодорожки. (Размер файла/длина трека = бит)

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

Могу ли я получить длину звуковой дорожки из HTTP-заголовков? Если нет, возможно ли получить только биты, которые описывают длину/скорость передачи битов вместо загрузки всего файла?

Я пишу код в python, но вопрос довольно общий, поэтому я не помещаю его как вопрос python.

ответ

2

Предполагая, что удаленный сервер ведет себя красиво, вы можете отправить запрос HEAD в файл и проверить содержимое Content-Length header field. Это не дает вам длину дорожки или скорость передачи, но вы можете получить размер файла.

EDIT: MP3 состоят из нескольких кадров, каждый из которых может иметь разную скорость передачи (VBR). Длина трека вычисляется по битовой скорости каждого из этих кадров, а не по самой длине. Если вы хотите, чтобы скорость передачи данных была надежно, вам нужно, чтобы два получили весь файл и получили битовую скорость каждого из фреймов. Может быть возможно захватить первые несколько килобайт файла и прочитать скорость передачи битов из первого кадра, но это не всегда в одной и той же точке файла (например, из-за положения тега ID3 и т. Д.).

+0

Это приносит мне размер файла. Я хотел бы получить длину аудиодорожки в секундах, а не в байтах. – iTayb

+0

MP3 может содержать информацию заголовка/тега, которая сообщает вам скорость передачи битов, но она не обязательно содержит фактическую скорость передачи, используемую в файле. Это становится более сложным, если вы считаете, что они также могут быть переменными скоростями передачи. Если файл CBR, то, возможно, заголовок [frame header] (http://www.mp3-tech.org/programmer/frame_header.html) - это место для начала поиска. – cmbuckley

Смежные вопросы