Как я могу отслеживать прямую трансляцию mp3, чтобы обнаружить повреждение? - PullRequest
1 голос
/ 22 ноября 2011

Раз в месяц потоки mp3 портятся, и единственный способ сказать, что он испорчен, - слушать его во время потоков.Есть ли сценарий, или программа, или инструмент, который я могу использовать для отслеживания прямых трансляций по заданному URL-адресу и отправки какого-либо флага, когда он искажается?

Что обычно происходит, например, при воспроизведении песни или музыкираз в месяц, каждый месяц, случайным образом, поток искажается и запускается случайный бурундук, как мусорное аудио.Есть идеи по этому поводу?Я только начинаю в этом, даже не подозревая.

1 Ответ

1 голос
/ 22 ноября 2011

Обычно это происходит при воспроизведении дорожки с неправильной частотой дискретизации.

Большинство (все, что я видел) кодировщики SHOUTcast / Icecast (идущие прямо из файлов) прекрасно сжимают для MP3, но предполагают фиксированную частоту дискретизации, для которой они настроены. Как правило, это будет 44,1 кГц. Если вы добавите дорожку с частотой 48 кГц или дорожку с частотой 22,05 кГц, они будут воспроизводиться на разных скоростях, вызывая всевозможные случайные проблемы с потоком.

Проблема достаточно легко проверяется. Просто создайте файл с другой частотой дискретизации и протестируйте его. Я подозреваю, что вы будете воспроизводить проблему. Если это так, то, насколько мне известно, нет способа обнаружить это, поскольку ваш поток на самом деле не поврежден ... он просто звучит неправильно. Вам придется сканировать все ваши файлы на частоту дискретизации. FFMPEG в сценарии должен помочь вам в этом.


Теперь, если проблема на самом деле в поврежденном потоке MP3, значит, у вас проблемы с кодировкой. Я подозреваю, что простая замена любой библиотеки DLL или модуля, который вы используете с последней стабильной версией LAME , поможет.

Чтобы обнаружить поврежденный поток MP3, ваш кодировщик должен использовать CRC. Если вы включите его, вы сможете прочитать заголовки каждого кадра, чтобы найти CRC, а затем запустить его на аудиоданных. Если вы получили ошибку (или несколько кадров с ошибками), вы можете вызвать предупреждение.

Вы можете найти информацию о заголовке потока MP3 здесь:

http://www.mp3 -tech.org / программист / frame_header.html

...