Я пытаюсь (в NodeJS ):
- Подключиться к Icecast интернет-аудио потоку.Пример: http://icecast3.977music.com/comedy
- Разобрать заголовки ответа и извлечь значение
icy-metaint
. - Записать необработанные аудиоданные в файл, извлекая байты метаданных из аудиопотока в порядкеto:
- Перехватывать и анализировать метаданные, когда они поступают.
- Не включать байты метаданных в выходной файл, так что нет никаких аудио-артефактов из-за введенных метаданных.
Следуя странице "неофициального" протокола метаданных Shoutcast от SmackFu, я смог пройти дальше:
https://gist.github.com/e7474421dcb25e011620
По сути, я могу извлечь метаданные, когда они ожидаются (в самом начале потокового дампа есть только 1 событие метаданных, включенное в gist ).Эта часть, кажется, работает нормально.
Проблема в том, что выходной файл MP3 имеет заметные звуковые артефакты по всему файлу, предположительно, когда поступают байты метаданных.Тем не менее, я определенно извлекаю эти байты метаданных, а НЕ включаю их в выходной файл, так что это странная часть.
В протоколе по ссылке выше не сказано, что с выходом нужно что-то еще делатьфайл, но, очевидно, я все еще делаю что-то не так.Кто-нибудь знает, что еще нужно сделать с аудиопотоком?Заранее спасибо!