Как анализировать данные MP3 для извлечения пронумерованных кадров? - PullRequest
6 голосов
/ 05 января 2011

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

Согласно спецификации заголовок кадра MP3 , слово синхронизации выглядит как одиннадцать(11) биты 1 с, однако Я замечаю (естественно), что полезная нагрузка кадра, которую я должен с уверенностью предположить, является двоичной, и, таким образом, совсем не странно видеть одиннадцать (11) 1-ых в последовательности.

Мои вопросы:

  1. Существует ли утилита парсера MP3 Unix | Linux | Perl (стиль dd), которая может извлекать пронумерованные кадры из файла / канала MP3?
  2. Как можно отличить блок заголовка MP3 от любых других двоичных данных полезной нагрузки?и наконец:
  3. Является ли MP3 с постоянным битрейтом (CBR), определяемый байтами полезной нагрузки, или байты заголовка включены в совокупное количество байтов / битов для каждого заданного временного интервала?

1 Ответ

4 голосов
/ 06 января 2011

Я сделаю удар в # 2.

Насколько я понимаю, обычный способ синхронизации с потоком MP3 (и, следовательно, с учетом вашего подсчета кадров) заключается в следующем:

  • Поиск слова синхронизации
  • Когда слово синхронизации найдено, проверьте оставшуюся часть заголовка
  • Если заголовок кадра действителен, то вы должны знать позициюследующего заголовка
  • Если вы нажмете 3 или 4 заголовка подряд, и они действительны, то очень высоки шансы, что вы их нашли.

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

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