Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Однозначная идентификация mp3-файла (http://forum.oszone.net/showthread.php?t=29625)

softsafer 28-06-2004 04:50 204979

Задача: Есть куча mp3-файлов, с тегами и без них. Если композиций одного исполнителя много - я их складываю в отдельную папку, если же 1-2 штуки, то кладу их в общую папку "СБОРНИК". Когда количество композиций одного исполнителя увеличивается, я создаю папку и переношу их туда. Проблема в том что у меня есть плей-листы (например в формате winamp), в которые я накидываю любимые песенки, а после очередной реорганизации файлов плей-листы ломаются.

Идея: создать базу mp3-файлов, где кодом каждой композиции будет идентификатор построенный на основе ряда параметров mp3-файла, например контрольной суммы:

id filename

54987546 c:\music\сборник\Nirvana - The Men Who Sold The World.mp3
12348246 c:\music\Валерия\трек1.mp3
...

При перемещении файла в другую папку, ссылка в базе становится битой. Но мы всегда сможем найти файл по идентификатору. Можно написать процедуру восстановления ссылок, которая будет перебирать базу, проверять целостность ссылки и если ссылка битая, искать файл и восстанавливать ссылку.

Так какие параметры mp3-файла можно использовать?

Например BITRATE * LENGTH ???

Surround 28-06-2004 06:58 204980

softsafer
наиболее уникальным, на мой взгляд, является размер файла в байтах :biglaugh:

Guest 28-06-2004 08:36 204981

Surround
Если есть 10000 файлов и размер их колеблется от 3 до 7 Мб, вероятность совпадения 0,025%. Довольно велика. Если файлов будет 100000 штук, то вероятность возрастает до 0.25%. Было бы неплохо этот размер помножить ещё на какой-нить параметр.

bgg0408 29-06-2004 00:20 204982

softsafer
можно считать CRC или MD5. на быстрых компах считаются вполне быстро.
Главное эти методы обеспечивают уникальность хэша или контрольной суммы.

bilytur 29-06-2004 03:21 204983

Если менялись тэги, (а это вполне даже реально), то ни один из названных способов не пройдет.

softsafer 01-07-2004 03:57 204984

bilytur
Тогда надо взять параметры, которые не зависят от тегов:
- длина трека в секундах
- bitrate

Или же убрать теги и посчитать CRC

bgg0408 01-07-2004 06:59 204985

Цитата:

Или же убрать теги и посчитать CRC
Разумно и реализуется легко, если есть описалово на теги (ID3v1, ID3v2).

bilytur 02-07-2004 03:16 204986

Ну вот теперь все правильно. Не возражаю. :)


Время: 16:48.

Время: 16:48.
© OSzone.net 2001-