Введение
Alluvium – программное обеспечение с открытым исходным кодом для одноранговой трансляции, разработанное Фондом исследований децентрализации и впервые выпущенное в 2003 году. Оно состоит из трех компонентов: Core, Media Player и Server. Alluvium позволяет вещать видео- и аудиопрограммы через Интернет, используя технологию роевого вещания. В его основе лежит Swarmcast от Onion Networks, и оно примечательно благодаря интеграции плейлистов, основанных на времени, на стороне сервера, а также клиентского программного обеспечения, которое анализирует эти плейлисты и начинает потоковую передачу контента с сервера (и доступных участников сети) согласно расписанию, что упрощает создание непрерывного видео- и аудиовещания.
Технический обзор
Alluvium – это технология для недорогих потоковых медиавещаний. Она отличается способом работы от стриминговых серверов типа «сервер-клиент», таких как Icecast, Real Server и QuickTime Streaming Server. Для её работы требуется только стандартный веб-сервер и клиентское программное обеспечение. Дополнительные модули или CGI-скрипты не требуются.
Веб-сервер
Веб-сервер обрабатывает статические файлы: контент и плейлисты. Файл плейлиста Alluvium — это текстовый файл, расположенный на веб-сервере и написанный в формате плейлистов Alluvium, который основан на формате новостей RSS 1.0. Файл плейлиста определяет порядок воспроизведения URL-адресов, которые могут быть размещены где угодно в сети. Все используемые теги RSS являются стандартными тегами из существующих схем. Файл плейлиста Alluvium можно создать с помощью инструмента генерации плейлистов Broadcaster. Веб-сервер настроен на доставку плейлистов Alluvium с MIME-типом Content Type: application/x alluvium для файлов с расширением rss.
Клиентское программное обеспечение
Клиентское программное обеспечение, работающее на компьютере каждого слушателя, просматривает файл плейлиста, пока не найдет запись, запланированную на текущее время, после чего загружает соответствующий медиафайл. Загрузка файлов осуществляется через Open Content Network (OCN) с использованием технологии Swarmcast для распределенной загрузки. После начала загрузки первого файла клиент немедленно передает его в локально сгенерированный поток, совместимый с Icecast. Медиаплеер клиента может быть настроен на этот локальный поток и воспроизводить его как обычный Icecast-стрим.
Операция скачивания swarming
Клиентское программное обеспечение сначала обращается к шлюзу OCN, который хранит специальные заголовки для всех файлов, распространяемых через OCN. Если шлюз не располагает информацией о конкретном URL, он запрашивает её из этого URL и затем кэширует. Информация, хранящаяся в шлюзе, содержит данные, необходимые для скачивания файла роем, такие как хэш-дерево. Среди информации, получаемой клиентом от шлюза, находится список адресов других клиентов, которые также загружают или недавно загрузили этот файл. Клиенты одновременно загружают несколько частей файла друг у друга. Если определённая часть файла недоступна у других клиентов, клиент загружает её с исходного URL-адреса и затем передаёт её другим клиентам, минимизируя нагрузку на сервер, хранящий файлы контента. Основной объём передачи данных происходит между участниками сети. Приоритет при загрузке отдаётся фрагментам, расположенным в начале файла, чтобы обеспечить немедленное воспроизведение. Эта архитектура роевого скачивания позволяет экономить пропускную способность и ресурсы процессора. Поскольку большая часть передач происходит между клиентами, нагрузка на исходный сервер значительно снижается. Кроме того, в отличие от Icecast, серверы, обслуживающие файлы для станций Alluvium, не декодируют файлы, поэтому трансляции можно осуществлять с использованием недорогого, устаревшего оборудования с достаточной скоростью ввода-вывода и сетевого соединения.
История
Alluvium был разработан в рамках проекта Tristero, размещенного на SourceForge, Брэндоном Уайли. Исходный код, все еще находящийся в стадии бета-тестирования, доступен как часть проекта Tristero по адресу tristero.cvs.sourceforge.net.
Alluvium был представлен на CodeCon 2 в феврале 2003 года, вызвав интерес в сообществах одноранговых сетей, открытого исходного кода и потокового радио. В 2004 году CodeCon 3 транслировался в прямом эфире с использованием Alluvium 2.0. Alluvium был далее разработан и интегрирован в программное обеспечение, разработанное в ActLab и названное в честь ActLab.TV – пирингового теле- и радиосервиса, управляемого ActLab при Техасском университете в Остине.