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

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

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

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

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

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

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


person lozz    schedule 03.02.2014    source источник


Ответы (1)


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

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

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

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

В качестве альтернативы я написал сервер под названием AudioPump, который обеспечивает аналогичную функциональность. Он пока недоступен, но, если вы заинтересованы, свяжитесь со мной по адресу [email protected].

person Brad    schedule 04.02.2014
comment
Спасибо @Брэд. Я испачкаю руки с Icecast и возьму его оттуда. Если я наткнусь на какие-нибудь кирпичные стены, я обязательно расскажу вам об AudioPump. Я предполагаю, что его использование будет стоить денег. Это правильно? - person lozz; 04.02.2014
comment
@lozz На данный момент нет. По правде говоря, я был слишком занят написанием серверного программного обеспечения и другого программного обеспечения для интернет-радио, чтобы создать интерфейс для выставления счетов. Однако в какой-то момент это будет не бесплатно. Не стесняйтесь, пишите мне по электронной почте, если у вас есть какие-либо вопросы о Icecast, или задайте их здесь, на StackOverflow, и дайте мне ссылку. - person Brad; 04.02.2014