Как программно определить, является ли файл MP3 CBR или VBR? (желательно с использованием C #) - PullRequest
6 голосов
/ 13 октября 2008

Я знаю много утилит, которые могут сообщать мне битрейт файла MP3, но я никогда не видел ни одной, которая могла бы сказать мне, является ли файл MP3 VBR (переменная скорость передачи - скорость передачи колеблется внутри файла или нет). ) или CBR (постоянная скорость передачи - скорость передачи в файле остается неизменной). Я предполагаю, что большинство программ не заинтересованы в том, чтобы выяснить это, так как это несколько анализирует файл, чтобы увидеть, изменяется ли битрейт, что снижает скорость.

Итак, вместо поиска утилиты, я хотел бы написать одну - так как я могу программно определить, является ли файл MP3 VBR или CBR? У меня есть около 15 000 файлов, чтобы выяснить это, поэтому мне нужно автоматизировать процесс.

Ответы [ 2 ]

7 голосов
/ 13 октября 2008

MP3-файлы, по сути, представляют собой так называемые кадры. Каждый кадр имеет небольшой заголовок, в котором хранится информация о кадре. В заголовке также хранится информация о том, какой битрейт был использован для кадра. В файлах CBR все кадры используют одинаковую скорость передачи данных, поэтому каждый заголовок имеет одинаковую информацию о скорости передачи данных.

Чтобы определить, использует ли файл VBR, необходимо просмотреть каждый кадр файла, посмотреть заголовок и проверить, изменяется ли поле битрейта. Если это так, то это VBR MP3.

Полное описание формата MP3 здесь: http://www.mpgedit.org/mpgedit/mpeg_format/mpeghdr.htm

2 голосов
/ 13 октября 2008

Отметьте это Класс MP3Header , в нем есть метод, который сообщает вам, является ли файл mp3 VBR, и вся информация заголовка mp3 ...

...
boolVBitRate = LoadVBRHeader(bytVBitRate);
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...