Намедни мне довелось организовать трансляцию видео с ТВ-тюнера по локальной сети. Множество статей в интернете рассказывало про настройку плеера VLC для этого дела. Сам процесс настройки оказался несложным, но возник один неприятный нюанс — чтобы переключить канал, нужно прервать трансляцию, изменить настройку и начать вещание снова, что очень неудобно. Люди, конечно, извращались — переключали канал через удаленный доступ, но меня это категорически не устроило.
Однако, немного напрягшись, я вскоре нашел то что мне нужно. Это оказался программный пакет Unreal Media Server, состоящий из:
- ПО для захвата видео- и аудиосигнала с любого источника на компьютере, будь то — Web-камера, ТВ-тюнер, USB/Firewire камер и т.п. Главное чтоб это оборудование поддерживало DirectShow интерфейс.
- Собственно сервера для вещания этих источников в сеть.
- Плеера для проигрывания видео через сеть, хотя его наличие не обязательно — видео можно воспроизвести и штатными средствами Windows.
- Web-странички для переключения каналов пользователями (!), которую можно прицепить, к примеру, на веб-сервер IIS, который входит в состав Windows XP Professional.
Надо заметить, что продукт можно свободно скачать с сайта производителя, но в нем действуют некоторые ограничения, которые, впрочем, не создадут проблем, если ПО используется в домашних условиях.
При установке я обширно делал скриншоты, поэтому приведу пошаговую инструкцию для настройки этого программного продукта.
Первое, что нам нужно сделать — это скачать отсюда следующие программы:
- Unreal Live Server (http://umediaserver.net/bin/ULiveServer.zip)
- Unreal Media Server (http://umediaserver.net/bin/UMediaServer.zip)
- Streaming Media Player (http://umediaserver.net/bin/StreamingMediaPlayer.zip) — необязательно
- Remote TV channel control (http://umediaserver.net/bin/TVChannelChanger.zip)
Скачав все необходимое, установим Unreal Live Server. Установка каждой из программ производится несколькими нажатиями на Next, поэтому на этом не будем заострять внимание. Установив, запустим Live Server Configurator из меню Пуск, чтобы настроить захват видео с TV-тюнера.
Добавляем источник видео через File — Add new media source, в появившемся окне отмечаем галку Add Video channel и выбираем появившийся в списке нужный нам тюнер, в моем случае, это Conexant Capture (карточка V-Stream TV878)
на следующем этапе мне было предложено применить сжатие транслируемого видео. По началу я было выбрал опцию — не сжимать видео, но при таком раскладе скорость потока была 60 мегабит в секунду, что довольно круто для стомегабитной сетки %) Поэтому оставляем все настройки как есть
далее необходимо выбрать размер и частоту смены кадров, а также источник на самом тюнере
затем можно включить деинтерлейс, наложить на изображение логотип, время, или произвольный текст, сразу же поглядев на результат, нажав на кнопочку Preview
по аналогии с выбором тюнера, указываем звуковое устройство, через которое мы обычно слышим звук с тюнера на компьютере и указываем, что звук также необходимо сжимать
также выберем источник звука на самой звуковой карте
теперь самое главное — необходимо настроить параметры сжатия транслируемого видео
разница между Real Time и Buffered, как мне думается, в локалке, не ощутима, а вот с кодеком на слабеньком Атлончике 1,53 пришлось поэкспериментировать. В итоге я сжал звук в WMA 95 kbps, а видео-кодеком установил MPEG-4, т.к. устанавливаемый по-умолчанию WMV9 ужасно тормозил, и просился устанавливаться на стареньком WMPlayer’е со стороны клиента.
затем запоминаем присвоенный источнику трансляции Source ID и заполняем примечание, так, для себя, оно значения не имеет
последним шагом была установка записи видео по расписанию, но я это пропустил
как мы видим, в списке доступных источников появился наш сконфигурированный, готовый безропотно отдавать видео, TV-тюнер
Затем, нашей задачей будет этот источник предоставить в локальную сеть. Для этого и служит программа Unreal Media Server. Устанавливаем ее и запускаем
в настройках программы можно поменять порты (не забудьте открыть их в брандмауэре), сетевые интерфейсы, ограничения и другие функции
теперь настроим вещание для настроенного ранее нами источника-тюнера, добавив новое вещание через File — New live broadcast. На первом этапе оставляем все как есть. Остальные режимы не понадобятся для домашнего использования 😉
далее, важными для нас установками являются: Live broadcast Alias — алиас, нужный для того, чтобы клиент мог различить разные источники вещания (mms://192.168.1.3:5119/наш_алиас), Live source IP address and ID — адрес компьютера, на котором установлен настроенный нами ранее сервер источников видео (Live Server) и идентификатор собственно источника видео, который мы запомнили 🙂 Остальное можно оставить без изменений
Все. Теперь на клиентских машинах можно запускать, к примеру, Windows Media Player на воспроизведение такого URL mms://ip_нашего_сервера:5119/алиас_источника_видео
но канал всегда будет по-умолчанию один и тот же, поэтому настроим переключение каналов у клиента. Для этого нам нужно установить IIS-сервер (нам потребуется установочный диск Windows) и ранее выкачанная веб-страничка Remote TV channel control. Установка IIS-сервера производится через Панель управления — Установка и удаление программ
где выбираем пункт «Установка компонентов Windows»
становимся на Internet Information Services (IIS) и заходим в состав
нам нужны только общие файлы, оснастка IIS и служба WWW (только служба WWW, для этого тоже редактируем ее состав)
устанавливаем, в ходе установки нам потребуется либо установочный диск с нашим Windows либо диск от установленного сервис-пака. Если все прошло гладко устанавливаем страничку для дистанционного управления. При установке важно указать папку, в которой у нас будет сайт с управлением (http://ip_сервера/указанная_нами_папка).
интерфейс для переключения каналов довольно примитивный, я б сказал — слишком примитивный. Ко всему прочему — каналы работают по непонятно какому алгоритму. У меня получилось так, что нужный канал будет равным реальной частоте канала поделенной на 2,3. Для удобства переключения каналов я модифицировал страничку,
добавив следующие строки:
<!-- шапка --> function ChangeChannel(ChNum) { TVChannelNum = ChNum; DialPad.TVChannel.innerText = TVChannelNum; } ............. <!-- перед закрывающим тегом </form> --> <font size="+1" color="#ffcccc"> 1. <INPUT id="Channel1" type="submit" value="1+1" language="javascript" onclick="ChangeChannel(64);"> <INPUT id="Channel1" type="submit" value="+" language="javascript" onclick="ChangeChannel(65);"> 176,60 MHz (64)<br> 2. <INPUT id="Channel1" type="submit" value="National Geographic" language="javascript" onclick="ChangeChannel(114);"> <INPUT id="Channel1" type="submit" value="+" language="javascript" onclick="ChangeChannel(115);"> 272,75 MHz (114)<br> 3. <INPUT id="Channel1" type="submit" value="Discovery" language="javascript" onclick="ChangeChannel(133);"> <INPUT id="Channel1" type="submit" value="+" language="javascript" onclick="ChangeChannel(134);"> 336,75 MHz (133)<br> </font>
скачать: UTVChanger.asp (1753 Загрузки)
следует заметить, что на обычных ТВ-тюнерах переключение канала одним пользователем будет влиять на всех остальных :/
по теме:
http://umediaserver.net/umediaserver/russian.html — коряво переведенная дока на оффициальном сайте (…Если на серверском компьютере бежит Мicrosoft IIS…) 😀
http://www.pctuner.ru/page-al-umediaserver.html — единственный намек на обзор, который я нашел в рунете
http://forum.ru-board.com/topic.cgi?forum=8&topic=2510&start=220 — ПО упоминается в этой ветке, в шапке есть много интересного