Icecast — проект потокового мультимедиа , выпущенный как бесплатное программное обеспечение, поддерживаемый Xiph.Org Foundation . Это также относится конкретно к серверной программе, которая является частью проекта. Icecast был создан в декабре 1998/январе 1999 года Джеком Моффиттом [5] [6] и Баратом Рагхаваном [6] для предоставления сервера потокового аудио с открытым исходным кодом , который каждый мог модифицировать, использовать и возиться с ним. Версия 2, переписанная с нуля , направленная на поддержку нескольких форматов (первоначально ориентированная на Ogg Vorbis ) и масштабируемость, была начата в 2001 году и выпущена в январе 2004 года .
Icecast был первоначально разработан Моффиттом в 1998 году для радиостанции SMU . В то время станция постоянно теряла лицензию FCC [ нужна ссылка ] и в то время могла добираться до слушателей только в том же здании. Учитывая, что все общежития на территории кампуса имели подключение к Ethernet, использование потокового аудио для трансляции было естественным решением, но доступное в настоящее время программное обеспечение для потокового аудио, такое как RealAudio, было слишком дорогим. Моффитт создал Icecast, позволяющий станции легко достигать любой точки кампуса без необходимости лицензирования FCC или модернизации передатчика. Первоначально разработанный для поддержки mp3 , вскоре после этого была добавлена поддержка Vorbis .
Сервер Icecast способен передавать потоковое аудио в формате Opus или Vorbis [7] по стандартному HTTP , видео в формате WebM или Theora [7] по HTTP, а также MP3 , [7] AAC , [6] и NSV [6] по SHOUTcast. протокол. Theora, AAC и NSV поддерживаются только в версии 2.2.0 и новее.
Icecast требует внешних программ, называемых «исходными клиентами», для создания потоков [8] , а проект Icecast включает исходную клиентскую программу, известную как IceS . [9] Источник обычно работает в том месте, где генерируется звук (например, в студии), и на сервере Icecast, где доступно соединение с высокой пропускной способностью (например, в колокейшн-центре ). Начиная с версии 2.4.0 исходные клиенты могут использовать простые стандартные HTTP-запросы PUT вместо специального метода SOURCE. [6]