2014-02-03 2 views
1

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

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

Для моих клиентов я предполагаю, что мне нужен игрок на стороне клиента, который может облегчить «вход в систему». В идеале я мог бы передавать потоки в windows xp/7/8, mac и android.

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

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

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

ответ

1

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

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

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

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

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

+0

Спасибо @Brad. Я задержу руки в Icecast и возьму его оттуда. Если я ударил все кирпичные стены, я обязательно дам вам крик относительно AudioPump. Я предполагаю, что в этом будет задействована стоимость. Это верно? – lozz

+0

@lozz На данный момент нет. По правде говоря, я слишком занят написанием серверного программного обеспечения и другого программного обеспечения для интернет-радио, чтобы фактически создать интерфейс биллинга. Однако в какой-то момент это будет несвободным. Не стесняйтесь пишите мне по электронной почте, если у вас есть вопросы о Icecast, или попросите их здесь, в StackOverflow, и напишите мне ссылку. – Brad

Смежные вопросы