Как обеспечить ограниченный доступ к потоковой передаче MP3 через Интернет

Мне нужно передать несколько "каналов" (по каналам, я имею в виду радиоканалы, так что списки воспроизведения могут быть более подходящими) из файлов MP3 в очереди для примерно 200 клиентов через Интернет с веб-сервера Windows 2008 R2 / IIS 7. Шифрование потока не является обязательным требованием.

Мне нужен какой-то способ, чтобы каждый клиент мог передавать только один канал за раз. Я думал об ограничении по IP-адресу и приветствовал бы любые предложения о том, как я мог бы пойти по этому поводу, или, если может быть, есть лучший способ.

Для моих клиентов я предполагаю, что мне понадобится плеер на стороне клиента, который мог бы облегчить "вход". В идеале я мог бы транслировать на клиенты Windows XP /7/8, Mac и Android.

Мне нужно было бы иметь возможность удаленно войти в систему и управлять каждым каналом / списком воспроизведения из конечного списка файлов MP3, размещенных на веб-сервере.

Мне интересно, есть ли какие-нибудь готовые продукты, которые я мог бы использовать для этого. Если нет, я застрял на том, что было бы лучшим способом сделать это.

Я кратко прочитал о shoutcast, auto dj, streamcast и ice cast, но у меня нет никакого опыта работы с этими решениями, и я не могу найти информацию о том, как реализовать свои требования к безопасности (ограничение доступа к одному из них). поток на клиента / IP-адрес).

1 ответ

Решение

IP-адреса не уникально идентифицируют пользователей. Существует множество ситуаций, когда NAT вступает в игру, и вы можете иметь сотни пользователей за одним и тем же публичным IP-адресом.

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

По сути, вы назначаете браузеру идентификатор с файлом cookie. Когда пользователь щелкает ссылку для запуска своего аудиопроигрывателя, идентификатор сеанса передается в URL-адресе в поток. При использовании этого метода не имеет значения, используется ли для воспроизведения потока сам браузер или отдельный аудиоплеер. Затем потоковый сервер может принять или отклонить запрос.

Обычно новый запрос принимается и отключается при старте нового потока. Icecast изначально не поддерживает такого рода вещи, но он предоставляет своего рода API-интерфейс с интерфейсом администратора, который вы можете использовать из своих собственных сценариев, чтобы получить такое поведение.

В качестве альтернативы я написал сервер под названием AudioPump, который обеспечивает аналогичную функциональность. Обычно это еще не доступно, но, если вы заинтересованы, свяжитесь со мной по адресу brad@audiopump.co.

Другие вопросы по тегам