Как я создавал собственный сервер трансляции видео на базе домашнего ПК
Время на прочтение10 мин
Количество просмотров32K
Сразу хочу отметить, что в Интернете много статей на похожую тему, но каждая статья имеет те или иные нюансы. Здесь я напишу про свой личный опыт.
История примерно такая. В нашем городе имеется своё местное телевидение. Оно транслируется в сети кабельного телевидения в аналоговом и цифровом (DVB-C) виде. Точнее, оно транслируется в определённое время по полчаса в день на телеканале-партнёре (в нашем случае – телеканал «Продвижение»). Кабельное телевидение доступно не каждому жителю. В основном оно протянуто в многоквартирных домах, каковым мой дом не является. А до сентября прошлого года телеканал местного ТВ вещали в ДМВ диапазоне в аналоговом виде. Именно этот и только этот телеканал я и смотрел, пока не прекратили вещание. Также имеется канал местного телевидения на ютубе, но там информация публикуется только на следующий день после премьеры. И то, информация не полная, только видеосюжеты. Мне пришла такая идея: сделать каким-то образом передачу местного телеканала с кабельного телевидения к себе домой через Интернет. У многих моих хороших знакомых в квартире есть кабельное телевидение. На базе одного из них я и решил осуществить задуманное.
Компьютер, на котором я всё собрался строить, был с ОС Windows 7 x64 и конфигурацией, как на рис. 1.
Платы ТВ-тюнера и видеозахвата, которыми я располагал, уже не поддерживали данную операционную систему на уровне драйверов. А ставить Windows XP было невозможно по другим причинам. Но у меня валялся USB «свисток» для оцифровки видеокассет. Это своего рода кастрированное устройство видеозахвата, как я его называю (рис. 2). Однако для моих нужд такое устройство вполне сойдёт, и оно отлично работает в Windows 7. На нём есть вход аудио стерео, композитный и S-Video вход видео.
Предполагалось, что к нему я подключу внешний ТВ-тюнер, а его в свою очередь подключу к сети кабельного телевидения. В роли ТВ-тюнера буду использовать полноценный видеомагнитофон или ТВ-приставку. К устройству видеозахвата в комплекте прилагается программа для осуществления видеозаписи, в том числе и по расписанию. Изначально я собирался воспользоваться именно видеозаписью по расписанию, чтобы в автоматическом режиме в определённое время записывать видео с необходимого телеканала, когда транслируется местное телевидение. При этом записанные файлы сразу же передавать к себе на FTP-сервер (к примеру) также в автоматическом режиме, или иметь к ним удалённый доступ. Но при экспериментах мне не понравилось качество работы данной программы по оцифровке. Но это не самое печальное. Ещё некорректно работал аудиовход, который находится на борту устройства. Оно в диспетчере устройств определяется как «OEM Capture», но данное устройство является устройством видео. То есть, оно не числится в системе как устройство ввода аудио. А аудиовход на нём работает, как подмешивание звукового сигнала в систему. Именно это мне и не понравилось. В программе для оцифровки имеется возможность принудительно указать звуковую карту для захвата звука, но эта опция оказалась некорректно работающая. В целом мне не понравилась эта программа, и я начал искать другие пути решения.
Тут же я вспомнил про VLC плеер, в котором есть возможность открывать не только файлы, но и устройства видеозахвата DirectShow (рис. 3). Ещё я помнил, что там имеется возможность стримить видео, т.е., делать трансляцию видео с данного устройства в компьютерную сеть. Удивительно, но мой «свисток» открылся в VLC, однако не без проблем. Практически у любого устройства видеозахвата на уровне драйверов имеется конфигуратор в виде отдельного окошка. Там настраиваются аппаратные параметры устройства и базовые параметры видеозахвата: частота кадров, источник входа видео, яркость и контрастность изображения и т.д. Это окно отдельно вызывается при открытии устройства, если поставить галочку «Настройка устройства» в расширенных параметрах (рис. 4). Именно там и нужно было правильно настроить моё устройство видеозахвата. Данное окно я не стал выставлять в виде рисунка, оно может быть индивидуально для каждого устройства.
Кроме возможности стрима VLC также умеет записывать видео в файл. Само собой, как известно, VLC поддерживает командную строку. Можно было организовать и расписание записи с помощью системного планировщика, вызывая bat-файл по таймеру с нужной командой для VLC. Но на данном этапе меня заинтересовала исключительно функция стрима. При данной функции VLC выступает в роли сервера, который слушает соединения по указанному в настройках порту. Также в настройках указываются и другие параметры: мультиплексоры, фильтры, кодеки и т.д. Сильно глубоко я в это дело не вникал. После долгих танцев с бубном и разных экспериментов мне удалось настроить только вывод в HTTP (рис. 5) с перекодированием в MPEG-2 (рис. 6). Более предпочтительный формат H.264 не заработал.
На роутере, где установлен данный компьютер, настроена функция DDNS, и провайдер даёт прозрачный IP-адрес. Также там осуществлён «проброс» соответствующего порта для данного компьютера. Таким образом, я подключаюсь из дома к серверу по доменному имени и смотрю трансляцию видео с устройства видеозахвата. Битрейт видео выставлен небольшой – 500 кбит/с. При более высоком битрейте соединение становится нестабильным и обрывается. Качество видео на таком низком битрейте в MPEG-2 оставляет желать лучшего. Изображение сильно рассыпается по «клеточкам» на быстрых сценах, чего не было бы с кодеком H.264 при том же низком битрейте.
Я продолжил искать другие пути решения. Тут я вспомнил про сервис «YouTube», где можно не только выкладывать видео, но и проводить прямые эфиры (стримы). Тем более, когда-то давно, лет 10 назад, я пробовал этим заниматься, используя плату видеозахвата вместо веб-камеры. С тех пор в техническом и программном оснащении ютуба много чего изменилось. Как выяснилось, стримы удобнее всего проводить с помощью отдельных специальных программ, которые называются стримерами. Стримеров существует несколько. Один из самых популярных – OBS Studio (рис. 7). Стример оформляет и подготавливает видео и аудио контент, основанный на множестве видеоисточников, различных эффектах и шаблонах. Затем он кодирует (сжимает) подготовленный поток в H.264 с указанными в настройках параметрами, после чего отправляет данный стрим на ютуб-канал пользователя. В качестве источников можно указать что хочешь: текущий экран, видеофайл, веб-камера, устройство видеозахвата, URL-поток стороннего сервера и т.д.
Моё устройство видеозахвата успешно подхватилось в OBS Studio. На ютуб-канал стрим может отправляться двумя способами: с помощью самой программы, где нужно авторизоваться на ютубе, и с помощью URL-адреса и ключа потока, которые генерирует ютуб при создании стрима и которые нужно вставить в параметры стримера. Я выбрал первый способ. Но и в этом случае я наткнулся ещё на одну лажу – политику ютуба. Дело в том, что ютуб не пропускает мой стрим с телеканала, сообщая о каких-то там нарушениях. А ещё ютуб при стриме некорректно обрабатывает видеопоток с пропорциями экрана 4:3. Именно в таком формате работает наше местное телевидение. И если открыть такой стрим с ютуба на мониторе 4:3 или 5:4 во весь экран, то не будет заполнения экрана по ширине, что крайне неприятно. Ютуб всё равно воспринимает видео, как 16:9. Сверху, слева, снизу и справа моё видео окружается чёрным обрамлением. При этом в настройках стримера пропорции видео указаны, какие нужны. Тем самым и эта технология отпала. Хотя, даже если бы она работала, она бы не соответствовала названию данной статьи. А так, в целом, OBS Studio отлично справляется с формированием качественного потока видео, даже на 500 кбит/сек, поэтому идею с OBS Studio я не хотел вычёркивать.
Я начал упорно искать в Интернете информацию, как сделать свой собственный независимый «сервер ютуб». Мне попалось очень много одинаковых статей на тему «Как размножить свой стрим на несколько соцсетей». Опишу кратко, в чём суть. Хотя, многие читатели это знают, как дважды два. Допустим, имеется стример OBS Studio. Данный стример умеет передавать поток только на один URL-адрес, который указан в настройках. Допустим, это ютуб. Если требуется транслировать видео одновременно, к примеру, не только на ютуб, но и в «Одноклассники», то требуется специальный программный инструмент по типу размножителя потока. В качестве такого инструмента используется программа «Nginx». Это простой и достаточно мощный универсальный сервер, который можно настроить в роли почтового сервера, веб-сервера, прокси-сервера и т.д. Про него можно очень много писать и рассказывать. В рассматриваемом примере программа конфигурируется таким образом, что на неё направляется видеопоток от стримера, и она, в свою очередь, передаёт этот поток на указанные в её настройках URL-адреса. То есть, с одной стороны сервер принимает соединения по определённому порту. Туда подключается стример. С другой стороны – сервер передаёт видеопоток от стримера в нужные сервисы видеотрансляции. В настройках стримера при этом в поле URL-адреса отправки стрима указывается не адрес сервиса с ключом трансляции, а адрес сервера Nginx («rtmp://localhost/live», если Nginx установлен на том же компьютере). При этом ветка «rtmp» в файле конфигурации Nginx прописывается так:
rtmp {
server {
listen 1935;
chunk_size 4096;
application live {
live on;
record off;
push rtmp://live-ams.twitch.tv/app/STREAMKEY; #адрес потока №1
push rtmp://a.rtmp.youtube.com/live2/STREAMKEY; #адрес потока №2
}
}
}
В данном примере, как видно, стрим размножается на сервисы ютуб и твич. Это был пример использования Nginx в качестве размножителя потока. Но с помощью него можно создать и свой сервер видеотрансляции. Немного подумав и почитав дополнительную информацию, я сконфигурировал Nginx следующим образом:
rtmp {
server {
listen 1935;
chunk_size 4096;
application live {
live on;
record off;
}
}
}
То есть, я убрал команды «push», благодаря которым в прошлом примере осуществлялся стрим на сервисы. В итоге Nginx стал в роли связующего звена: с одной стороны Nginx «слушает» входящие соединения от стримера, а с другой – соединения от зрителей трансляции. В настройках стримера адрес вывода потока прописан такой же, как и в примере, только вместо «localhost» я написал «127.0.0.1», указав принудительно порт 1935, как в конфигурации Nginx (рис. 8). После слэша написано слово «live» – такое же слово, какое написано в конфигурации Nginx после слова «application. В поле «Ключ потока» можно прописать любое слово. Его нужно будет добавить пользователю в URL-адрес при подключении к серверу. У меня прописано слово «stream». Таким образом, чтобы подключиться к серверу видеотрансляции, например, с помощью плеера VLC на этом же ПК, нужно открыть URL «rtmp://localhost/live/stream». А если нужно подключиться с другого устройства в Интернете, то нужно ввести «rtmp://myaddress/live/stream», где myaddress – доменное имя, привязанное к адресу роутера в Интернете (об этом я писал в самом начале). Соответствующий порт на роутере должен быть проброшен.
Это окончательное решение, которое полностью удовлетворило мои потребности. Стрим видео из OBS Studio на Nginx ведётся постоянно и непрерывно. Загрузка процессора при стриме составляет около 30%. Качество видео вполне удовлетворительное, проблем с согласованием соотношений сторон экрана также не возникает.
К устройству видеозахвата подключена приставка DVB-C через видеовыход. Конечно же, это не совершенно, но зато изображение качественнее, чем с аналогового ТВ-тюнера. Гораздо больший смысл и правильный вариант – взять в качестве источника видео плату DVB-C, но её ещё нужно где-то найти. Потом её нужно привязать в OBS Studio, настроив на нужный ТВ канал. Я пробовал настраивать китайский USB DVB-C/T/T2 свисток (из которого делают RTL-SDR), но он отказался уверенно принимать сигнал кабельного телевидения. Скорее, он больше уверенно не принимал, чем неуверенно принимал.
В качестве бонуса, кроме организации сервера видеотрансляции, я настроил автоматическую запись телепрограмм по расписанию. Это предусмотрено на тот случай, если у меня по каким-то причинам не получается вовремя включить прямой эфир трансляции, и есть возможность посмотреть её в записи. Работает это следующим образом. В роли видеорекордера выступает всё тот же VLC, установленный на том же компьютере, где Nginx и OBS Studio. VLC подключается к серверу, как к URL-потоку «rtmp://localhost/live/stream». При этом VLC не воспроизводит видео на экран, а записывает его в файл без перекодировки. В имя файла входит текущая дата и время, и заголовок «LIVNY». Всё это достигается в один клик с помощью вызова специального bat-файла, который я заранее запрограммировал:
@echo off
SET T=%TIME%
SET D=%DATE%
SET HH=%T:~0,2%
SET MM=%T:~3,2%
SET SS=%T:~6,2%
SET YY=%D:~6,4%
SET MN=%D:~3,2%
SET DD=%D:~0,2%
"C:\Program Files\VideoLAN\VLC\vlc.exe" --playlist-autostart rtmp://localhost/live/stream :network-caching=1000 :sout=file/ts:D:\\Capture\\LIVNY_%YY%%MN%%DD%_%HH%%MM%%SS%.ts --stop-time=1815 vlc://quit
Нужно дать короткое пояснение по написанным командам. Это элементы программирования в командной строке Windows. В переменную T извлекается текущее время в формате текстовой строки. Аналогично – в D извлекается текущая дата. В переменную HH извлекаются часы из переменной времени T, как диапазон символов «от 0 длиной 2» текстовой строки T. В переменную MM – минуты, как диапазон символов «от 3 длиной 2». И так далее. Аналогия такой функции в Excel (если кто знает) – ПСТР(текст; начальная позиция; количество знаков). Затем идёт команда для VLC, где в аргументе для sout указан файл, тип – ts, и его полное имя, которое собирается из вышеуказанных переменных даты и времени. Число «1815» – длительность записи в секундах. То есть, я осуществляю запись видео продолжительностью 30 мин. 15 сек. Данный bat-файл я вызываю с помощью стандартного планировщика заданий Windows (рис. 9). Для удалённого просмотра файлов я использую функцию сетевого окружения Windows, подключаясь к сети по VPN, что установлен на базе роутера.
Кроме этого есть ещё дополнительные примочки. У себя дома на одном из ПК можно включить сервер ретрансляции для локальной сети. Он реализован на базе всё того же VLC. Это сервер трансляции видео, которым является видеопоток по URL-адресу удалённого сервера видеотрансляции «rtmp://myaddress/live/stream». Данный URL указывается в качестве источника стрима. Вывод осуществляется без перекодировки потока, но в HTTP. Это всё нужно для того, чтобы распространить свою трансляцию на нескольких устройствах в локальной сети, не загружая при этом Интернет-канал одним и тем же дублирующим трафиком. При этом я подключаюсь к стриму по URL «http://192.168.0.3:8080», где 192.168.0.3 – адрес сервера ретрансляции в локальной сети, а 8080 – порт, указанный в настройках ретрансляции. Хотя, такие случаи бывают крайне редко.
И последний момент. На всех современных смарт-телевизорах (порой даже и не только смарт) имеется востренный клиент DLNA. Это специальный функционал, позволяющий смотреть на ТВ медиаконтент из локальной сети, к которой подключен телевизор. Данный медиаконтент (видео, фото, аудио) подготавливается на том или ином устройстве (смартфон или компьютер) с установленным DLNA-сервером. Своего рода, это аналогия общей папки на компьютере в локальной сети, но только для телевизора. Существует множество программ-серверов DLNA. Но одна из них – Serviio – позволяет публиковать через DLNA, кроме файлов, URL-видеопоток (рис. 10). Таким образом, имеется возможность смотреть любой стрим (в частности, свой собственный) на ТВ через DLNA.
По сути тот How-To, который я сделал можно считать баяном, так как это делали раньше и инструкций было завалом, но в инете я не нашел таких инструкций, по которым можно сразу сделать всё в три-четыре шага… И тут мне написали с очередным вопросом – могу ли я помочь в создании «очередного» интернет радио.
Инструкция описывает процесс создание интернет-радио на ОС Windows 2000, XP, Vista, Seven (7).
В общем начнём!
Для начала, если вы хотите вещать именно в интернет – то у вас должен быть реальный IP адрес (то есть должен быть виден из интернета!!!)
Шаг 1. Ставим SHOUTcast Server.
Саму программу можно найти на www.shoutcast.com. Скачать её можно по этой ссылке: http://yp.shoutcast.com/downloads/sc1-9-8/shoutcast-dnas-1-9-8-windows.exe
Ставим:
Это окно у вас не задержится и более 5-10 секунд, после чего оно закроется, откроется readme.txt и в меню «Пуск» появится папка «Programs» где и будет сам «SHOUTcast DNAS (GUI)», но прежде чем запускать его – настроим конфигурацию для его работы.
Файл конфигурации находится в папке «C:\Program Files\SHOUTcast» а называется он «sc_serv.ini». Открываем его блокнотом и используя полное описание всех параметров, настраиваем по своему вкусу.
Полное описание параметров:
; Максимальное количество пользователей, которые могут одновременно ; находится на сервере. MaxUser=32 ; Пароль для broadcasting-программ. Подробнее см. ниже. Это поле не может ; быть пустым. Password=mypassword ; Порт аудиосервера. PortBase=8000 ; Файл, куда будут записываться все логи сервера. LogFile=sc_serv.log ; Отображение статусной строки, которая будет ежесекундно обновляться и ; показывать последнюю информацию о сервере. RealTime=0 ; Вывод логируемых сообщений на экран. Полезно отключить, если сервер ; работает в фоновом режиме. ScreenLog=0 ; Количество песен, отображаемых в списке на www-странице /played.html ; (последние проигранные на сервере). Принимает значения от 1 до 20. ShowLastSongs=10 ; TchLog определяет, должен ли DNAS-лог записывать подключения ; yp.shoutcast.com к серверу. TchLog=yes ; Не учитывать посещения www-странички. WebLog=no ; Включение W3C-логирования. Информацию этого лога можно просматривать ; с помощью, например, Analog или WebTrends. W3CEnable=Yes ; Название файла с W3C-логами. W3CLog=sc_w3c.log ; Определяет IP допущенных к вещанию источников аудио потока… В нашем случае ; аудиосигнал на сервер будет подаваться с нашей локальной машины. SrcIP=127.0.0.1 ; Определяет IP допущенных к серверу слушателей. DestIP=ANY ; Порт для подключения к yp.shoutcast.com. Менять, только если стоит proxy-сервер. Yport=80 ; Не смотреть DNS-имя у подключающихся к серверу. NameLookups=0 ; Дополнительные настройки, нужные, если сервер будет пересылать получаемый ; аудиопоток на другой. ; RelayPort=8000 ; RelayServer=192.168.1.10 ; Пароль для администрирования через Web-интерфейс. Подробнее см. ниже. AdminPassword=mywebadminpassword ; Отключать слушателей, если источник аудиопотока отсоединяется. AutoDumpUsers=1 ; Время в секундах, которое источник аудиопотока может молчать (idle). AutoDumpSourceTime=10 ; Директория на жестком диске, где расположены стандартные аудиофайлы. ; См. следующие переменные. ContentDir=./content ; MP3-файл, который будут слышать только подключившиеся к аудиосерверу ; пользователи. Во избежание глюков строго рекомендуется, чтобы параметры ; файла соответствовали качеству вещания. (%d определяет текущий bitrate.) ; IntroFile=intro%d.mp3 ; MP3-файл, который будут слышать подключившиеся пользователи, если источник ; аудиопотока отключится. Уместны те же примечания, что и для IntroFile. ; AutoDumpUsers должен быть равен нулю. ; BackupFile=C:intro%d.mp3 ; Формат строки, отображаемый в клиентах пользователях во время прослушивания ; радио. %s определяет строку, которая берется у источника аудиопотока. TitleFormat=MyRadio: %s ; Формат строки, посылаемого слушателю URL'а. ; URLFormat=http://www.server.com/redirect.cgi?url=%s ; Является ли сервер публичным? Принимает значения always, never и default ; (для последнего информация берется у источника). PublicServer=default ; Другие серверы не могут пересылать свой сигнал через этот. AllowRelay=No ; Этот сервер не подлежит публикации в каталоге SHOUTcast. AllowPublicRelay=No ; Частота отсылаемых данных (в байтах). Рекомендуется оставить значение ; по умолчанию (32768). MetaInterval=32768 ; Максимальное время (в минутах), которое слушатель может находится на сервере. ; Если не определено, то ограничений нет. ; ListenerTimer=600 ; Текстовый файл, используемый для работы с забаненными пользователями. ; (Автоматически создается Web-интерфейсом.) ; BanFile=sc_serv.ban ; Текстовый файл, используемый для работы со списком клиентских IP-адресов, ; которые всегда могут подключиться к серверу. ; RipFile=sc_serv.rip ; Если включить, то к серверу смогут подключаться только клиенты с IP-адресами ; из файла RipFile. ; RIPOnly=No ; Подключение дополнительного общего конфига. ; Include=/usr/local/shoutcast/common.conf ; Следующие опции нужны для ускорения работы сервера. Менять их не рекомендуется. ; Количество процессоров. ; CpuCount=1 ; Время "сна" процессора (в мс) в промежутках между отправлением данных ; пользователям. Значение по умолчанию (833) оптимально для 128kbps. ; Sleep=833 ; Удаление некоторых лишних пробелов и строк в выводе XML. ; CleanXML=No
Несколько комментариев – основные параметры это MaxUser, Password, PortBase и PublicServer. Остальное можно оставить по умолчанию.
Шаг 2. Ставим Winamp.
Winamp – это плеер, с которого будет транслироваться вся музыка в интернет. Последнюю русскую версию всегда можно найти на сайте производителя, ну например по этому адресу http://www.winamp.com/media-player/ru. Особого внимания я акцентировать на его установке не буду – там и так всё предельно ясно и просто. Перейдём к третьему шагу!
Шаг 3. Устанавливаем SHOUTcast DSP Plug-In.
Это и есть тот плагин, который ретранслирует поток на сервер. Существует немало его аналогов, которые работают как самостоятельные плеера и dj-студии, но особого внимания я на них акцентировать не стану. Скачать последнюю версию как обычно можно на сайте производителя — www.shoutcast.com. Прямая ссылка, для тех, кто в танке — http://yp.shoutcast.com/downloads/shoutcast-dsp-1-9-0-windows.exe.
Начнём процесс установки:
Настраиваем:
Запускаем WinAmp плеер и выбираем «Сервис=>Параметры», там выбираем
1) «DSP (Эффекты)»
2) «Nullsoft SHOUTcast Source DSP v1.9.1 [dsp_sc.dll]»
3) Откроется окно плагина «SHOUTcast Source»
Далее закрываем «Параметры проигрывателя…» и приступим к настройке.
Ну, теперь можно запустить сервер, плеер и начать вещать в интернет свою музыку, мы ведь так долго шли до этого. Расписал я, конечно, не всё, так как в силу нынешнего ноутбука более возможностей я показать не смогу. Но в случае, если у вас будут какие либо вопросы – пишите, не стесняйтесь.
Радио в локальной сети Winamp + Shoutcast
Привет, друзья. Продолжаем тематику публикаций, посвящённых сетевым технологиям Windows. В одной из недавних статей сайта мы рассмотрели, как настроить локальную сеть и расшарить файлы для общего доступа. А в этой статье мы разберём тему потоковой трансляции мультимедиа. Если ваш компьютер подключён к локальной сети, например, к домашней сети через роутер, вы можете сделать свой компьютер на базе Windows медиасервером и транслировать воспроизведение видео, аудио и изображений на сетевые устройства с использованием технологии DLNA. При сетевом расшаривании данных мы реализуем доступ к ним только с компьютерных и мобильных устройств. При настройке же DLNA-сервера доступ к медиаконтенту компьютера можно будет получить не только с других компьютеров, планшетов и смартфонов, но с любых сетевых DLNA-совместимых устройств, в частности, с ТВ-приставок и телевизоров Smart TV. Как всё это работает?
Итак, друзья, DLNA – это технология потоковой трансляции данных по локальной сети. Технология эта примечательна тем, что она позволяет передавать данные в сети, реализуемой как проводным, так и беспроводным подключением, она не требует каких-то специальных настроек, и её поддерживает множество типов современных устройств – компьютеры, мобильные устройства, телевизоры Smart TV, ТВ-приставки, медиаплееры, игровые приставки, устройства виртуальной реальности и т.п. Все эти устройства, если они обустроены поддержкой технологии DLNA и подключены в единую локальную сеть, могут по типу клиентских подключаться к DLNA-серверу и транслировать доступный на нём медиаконтент.
В качестве DLNA-сервера могут выступать специальные роутеры и сетевые хранилища с поддержкой функции медиасерверов. Эти устройства всегда будут в онлайне, и любой из пользователей локальной сети в любое время со своего устройства сможет подключиться к DLNA-серверу и получить доступ к медиаконтенту. В качестве DLNA-серверов также могут выступать компьютеры и мобильные устройства, но для этого на них необходимо настроить работу определённого программного обеспечения. Для реализации на Windows-компьютерах DLNA-серверов есть масса специального стороннего софта. Но, друзья, простейшая возможность настройки DLNA-сервера есть в штате самой Windows. В среде Windows 7, 8.1 и 10 с использованием системного функционала можем сделать свой компьютер медиасервером DLNA. А чтобы Windows-компьютер мог выполнять роль клиентского устройства, на котором воспроизводится сетевой контент с медиасервера, для этого нужен всего лишь штатный проигрыватель Windows Media Player.
Универсальный способ для Windows 7, 8.1 и 10 настройки DLNA-сервера – запускаем проигрыватель Windows Media Player. И в его окне в меню «Поток» включаем потоковую передачу мультимедиа.
Откроется окно параметров потоковой передачи мультимедиа, здесь жмём «Включить потоковую передачу мультимедиа».
Дальше просто жмём «Ок».
Вот, собственно, и всё. DLNA-сервер создан, и на нём автоматически стало доступным для сетевого воспроизведения содержимое наших библиотек по умолчанию, т.е. папок нашего пользовательского профиля «Видео», «Музыка» и «Изображения». Если к этим папкам нужно добавить какие-то другие папки с медиаконтентом, чтобы они тоже были доступны с сетевых медиаустройств, с помощью того же Windows Media Player или проводника Windows добавляем эти папки в соответствующие по типу контента библиотеки.
Теперь можем пробовать подключиться к нашему медиасерверу с клиентских устройств. У каждого медиаустройства с поддержкой DLNA своя реализация доступа к DLNA-серверу. Например, на таком вот телевизоре Samsung с поддержкой DLNA медиасервер значится прямо в числе источников воспроизведения.
Здесь нам просто нужно зайти на наш медиасервер, выбрать тип медийного контента, ну и запустить его для воспроизведения на телевизоре.
Чтобы получить доступ к контенту DLNA-сервера с мобильных устройств, на них нужно установить специальное приложение, работающее с технологией DLNA. Таких приложений много, вот, например, одно из таких для Android-устройств – DMS Explorer. Это бесплатный и очень простой просмотрщик сетевого потокового контента. В окне приложения выбираем медиасервер, запускаем его и заходим в папку с нужным нам медиаконтентом.
Выбираем, например, видеоролик, жмём кнопку запуска в виде треугольника и смотрим ролик на нашем Android-устройстве. Но для запуска медиаконтента у DMS Explorer есть две кнопки.
Другая кнопка в виде экрана – это возможность отправки видеоролика на другие сетевые DLNA-совместимые устройства. При этом таким сетевым устройством может быть сам же компьютер, который и служит DLNA-сервером. В этом случае наше Android-устройство может играть роль пульта дистанционного управления. Будучи на расстоянии от компьютера-сервера, с мобильного устройства выбираем, что и на каком устройстве хотим посмотреть или послушать, и отправляем это воспроизводиться на выбранное устройство. После отправки в приложении DMS Explorer сможем управлять воспроизведением контента в части перемотки и приостановки/запуска.
А как компьютеры использовать в качестве клиентских DLNA-устройств? И как использовать возможности Windows по переброске воспроизведения медиа на сетевые устройства?
Друзья, чтобы Windows-компьютер мог выполнять роль клиентского DLNA-устройства (в том числе и тот компьютер, на котором непосредственно реализован DLNA-сервер, чтобы им можно было управлять с мобильных устройств) нужно:
-
Во-первых, настроить специальным образом Windows Media Player – именно он является штатным программным обеспечением для воспроизведения сетевого потокового медиаконтента;
-
Во-вторых, обеспечить активность Windows Media Player – проигрыватель должен быть запущен.
В окне Windows Media Player в меню «Поток» активируем опции «Разрешить удалённое управление проигрывателем» и «Автоматически разрешать устройствам воспроизводить моё мультимедиа».
После этих настроек активный Windows Media Player сможет принимать для воспроизведения мультимедийный контент, отправленный с других компьютеров и мобильных устройств. Правда, контент с других компьютеров мы сможем отправлять, если только на этих компьютерах будут установлены Windows 8.1 и 10. В этих системах штатно реализована функция отправки трансляции медиа на сетевые устройства – в Windows 10 это опция в контекстном меню «Передать на устройство», а в Windows 8.1 она называется «Привести к устройству». Выбираем эту опцию в контекстном меню на выбранном медиафайле, например, в окне того же проигрывателя Windows Media Player. Выбираем сетевое устройство воспроизведения, например, другой компьютер с запущенным Windows Media Player.
И трансляция запустится на выбранном сетевом устройстве. Если это будет другой компьютер, то, соответственно, трансляцию будем лицезреть в окне Windows Media Player.
На компьютере, с которого мы запустили трансляцию, сможем дистанционно управлять ею в таком вот небольшом окошке.
Точно такая же возможность отправки трансляции медиа на сетевые устройства реализована в контекстном меню проводника Windows 8.1 и 10.
И ещё, друзья, возможность отправки трансляции видео на сетевые устройства есть в приложении «Кино и ТВ» Windows 10. Мы можем, например, смотреть фильм на компьютере, а если нам понадобится перейти в другое помещение, мы берём и отправляем трансляцию, например, на телевизор на кухне или на компьютер в другой комнате. Функция передачи на устройство в приложении «Кино и ТВ» удобна тем, что отправляет воспроизведение с того места, где мы приостановили просмотр. Для её использования в меню «Кино и ТВ» при воспроизведении видео выбираем «Передать на устройство».
Ну и, соответственно, выбираем сетевое устройство, на котором хотим продолжить просмотр видео.
А чтобы просто подключиться к DLNA-серверу с использованием компьютера по типу клиентского устройства, нам нужно зайти раздел сети проводника и там в отделе «Устройства и мультимедиа» выбрать нужный медиасервер.
Этот медиасервер будет добавлен в перечень других библиотек в проигрывателе Windows Media Player на текущем компьютере. И вот, собственно, в окне последнего мы и будем иметь доступ к содержимому DLNA-сервера.
Друзья, в Windows 10 для доступа к видеоконтенту на DLNA-сервере вы можете использовать упомянутое приложение «Кино и ТВ». В нём есть раздел «Медиасерверы».
Заходите в этот раздел, выбираете папку с видео, а в ней – нужный вам видеофайл.
Вот такие, друзья, возможности потоковой трансляции с помощью технологии DLNA есть в штате Windows. Те из вас, кто использует сторонний софт для реализации на Windows-компьютере медиасервера, делитесь советами, рассказывайте о годным программах. Лучшие из сторонних программ по работе с DLNA будем рассматривать на страницах сайта.
https://obsproject.com/forum/resources/how-to-set-up-your-own-private-rtmfp-server-using-monaserver.153/
(copied here as a backup)
This article is inspired of the great guide of How to set up your own private RTMP server using nginx. https://obsproject.com/forum/resources/how-to-set-up-your-own-private-rtmp-server-using-nginx.50/
MonaServer is a tiny and scalable open source server which provide protocols RTMFP, RTMP, RTMPE, WebSocket and HTTP. Server applications are written in lua and clients just need to support one of these protocols.
The interest of MonaServer here is the RTFMP broadcast feature that avoid congestion (because it is a UDP protocol) unlike RTMP.
This guide will presents you an easy way to broadcast a video with OBS over RTMFP. Don’t worry, you will not need to configure or write any code here
Step 1 : Install MonaServer and run it
Just follow the instructions on http://monaserver.ovh/installation.html for your platform (MonaServer supports Linux, Windows and the MacOS X version is in beta).
Note : You can download the Windows package https://sourceforge.net/projects/monaserver/files/MonaServer_1.1_Win32.zip/download if you want to go faster (to get it work you will need the Visual Studio 2013 redistributable packages) http://www.microsoft.com/en-us/download/details.aspx?id=40784
Run MonaServer, for example on Linux :
./MonaServer
Step 2 : Configure OBS and start streaming
A. Configure OBS with the properties below :
Streaming Service: Custom
Server: rtmp://
Play Path/Stream Key: test
(Obviously you can change the stream key to any other name)
B. And now you can play your stream with an RTMFP video player. As they aren’t many players supporting RTMFP you can try this one :
http://raspi.monaserver.ovh/MonaClients/VideoPlayer/?fit
And type the following url in the RTMP/RTMFP input :
rtmfp:///test
Or directly with the url in argument :
http://raspi.monaserver.ovh/MonaClients/VideoPlayer/?fit&url=rtmfp:///test
/!\ Do not set a NetGroup in the NetGroup input.
broadcasting.png
Notes :
I've developed this client for testing, if you are looking for an easy embeddable player please ask me, I think it could be done easily.
you can also play the stream using RTMP (just change rtmfp:// to rtmp://) and your favourite player!
That’s all! If you’re facing a problem don’t hesitate to comment or contact me directly.
[NEW VIDEO]
You can now watch the video tutorial on how to broadcast with MonaServer and OBS.
https://www.youtube.com/watch?v=8JeOv4Mv7rg
Going further
With MonaServer it’s already possible to develop some cool applications like :
- online remote control,
- low cost p2p broadcasting with the use of the Netgroup feature of Flash.
Contact me if you are interested.
Enjoy!
Video streaming servers are system software that allow users to stream videos regardless of the operating systems. Some videos streaming servers are OS independent based on Linux and can be installed on any machine. Few others are meant for specific platforms such as Windows, Linux or Mac.
What is a Video Streaming Server?What is Video Streaming?Best Free & Open source Video Streaming Servers SoftwareRed5 Open source media serverMistServer Open SourceKurento Media serverStreamhash– Netflix Clone Free Lite versionClipbucket: Enterprise OpenSource Video Broadcasting SolutionOBS Studio (Open Broadcaster Software)Plex Media Serveropenflixr 2Opencast
What is a Video Streaming Server?
The server software that provides and manages the video media content remotely called Video Streaming Servers. Not all the video players can work with the video streaming servers instead of that it needs a perfect video player that can work with the remote servers to buffer and play it without downloading such as VLC. This method also protects the publisher to protect their content from piracy. Video media server utilizes particular calculations to pack the media document or information for exchange over the system or Internet association.
What is Video Streaming?
Video streaming is a sort of media streaming in which a user can stream the videos saved on the Video streaming servers. The user can use its local player or web player to stream the media files from remote video streaming servers through the internet or local network. Such servers allow watching videos without being downloaded on a local desktop machine or Smartphone.
For example, YouTube, Dailymotion, Netflix, Amazon Prime, Hulu these are all video on demand sites where you can watch video free or after subscription. These big names use the Video streaming servers for creating Video on demand (display) (VOD) call. VOD allows users to select and watch videos or listen to audio content such as music, movies and TV shows whenever they want rather waiting for some specific broadcast time.
There are dozens of free and open-source video streaming servers available online to stream and share videos. Today, we have listed the best ones in this article. Also, these media streaming servers are enterprise-class and can handle the streaming at large scale.
Red5 Open source media server
Red5 is an open source media server available in both Open source and paid licensed versions. It gives support for all kinds of live streaming. This design of this media server is very flexible and can enhance the capability using the simple plugins. The plugin architecture also allows for customization of virtually any VOD and live streaming scenario.
There are few big names like Amazon and Facebook using the Red5 video streaming server solution. Red5 is now used for live streaming beyond Flash including HLS, WebSockets, and RTSP. As part of the Google Summer of Code, the Red5 team is currently building support for WebRTC to enable streaming in the browser without a plugin.
MistServer Open Source
MistServer Open Source edition of MediaServer Pro edition but there are no software limitations in the Open source version. The only difference between the pro and opensource Miniserver edition is the features. The free open source media server edition has fewer features than the pro version. The open source version is On the fly stream repackager, comes with browser-based management interface, low footprint high-performance, modular design, low latency, Multiplatform, Smart HTML5 meta player, API, Stream meta-data, and Basic analytic integration.
Some other features:
- Stream password protection
- Fast boot times
- One set of binaries per customer,
- Live inputs: RTMP single bitrate
- VoD input: FLV, MP3, Video Output: MP4, HLS, RTMP (single bitrate), MPEG-TS (unicast), HDS, FLV, MP3, OGG,
- Stream analyzers: RTMP, MP4, RTMP, OGG, FLV, DTSC
- Video codecs: H264, Flash, Theora
- Audio codecs AAC, MP3, Flash, Vorbis
- Standard support
Supported operating systems: Unix, Solaris, Linux x86, Linux x86_64, Linux ARM, Linux MIPS, OS X, Windows 64 bits.
Kurento Media server
Kurento is an Open source WebRTC media server. This support both audio and video and also offers a set of client APIs which allows the developer to create advanced video applications for WWW and smartphone platforms. Kurento Media Server features include group communications, transcoding, recording, mixing, broadcasting and routing of audiovisual flows.
The Kurento Audio/ Video streaming server provides media processing capabilities involving computer vision, video indexing, augmented reality and speech analysis. Kurento can easily integrate third-party media processing algorithms such as speech recognition, sentiment analysis, face recognition, etc.
Streamhash– Netflix Clone Free Lite version
Streamhash has the ability to create subscription-based Video-on-demand streaming sites like Netflix and Amazon Prime or video streaming like Youtube or Live Video Streaming like Facebook Live.
The Streamhash three products or scripts:
StreamView: It is a Netflix Clone Script and ability to create like Netflix and Amazon Prime.
StreamNow: This product gives the capability to create a Live Streaming video option just like Facebook Live and YouTube Live. You can create Live streaming ads to generate profits.
StreamTube: It is a YouTube clone script to create a website like YouTube or Vimeo. The user can signup, upload videos and allow to generate easy revenue using Video ads and Banner Ads.
It offers three versions Free Lite, ($699)Ultimate and ($199) Deluxe. The lite version is for the lifetime and comes with basic features mentioned below:
StreamView Free Version Features:
- 100% source code
- Web Script
- Unlimited Users
- Unlimited Video Uploads
- Dynamic Admin Panel
- Responsive Frontend
- Categories and Subcategories
- Track number of users
- Add / Edit pages
- Google Analytics
Clipbucket: Enterprise OpenSource Video Broadcasting Solution
ClipBucket is an OpenSource Multimedia Management Script which lets you manage Videos, Photos & Audios from one platform. You can create websites sharing websites like Youtube, Metacafe, Veoh, Hulu or any other.
It is one of the most popular to create YouTube-like clone website. It also offers internal management systems that allow users to communicate and send messages via a built-in messaging service. Clipbucket Video streaming server offers advanced modules like FFMPEG to make on fly Video Conversions. So, users can stream it straight away using HTML 5 Players.
OBS Studio (Open Broadcaster Software)
Creating videos and presenting them on YouTube or Facebook is relatively easy. The transmission of live streams on the Internet is more demanding. The free program “OBS Studio” (formerly “Open Broadcaster Software”) is suitable for this. For example, you can use the current desktop content or the signal of your webcam, record a game via game mode and local MP4, MOV, FLV, TS or MKV videos, MP3, AAC, OGG – or use WAV sounds and an external video source. Text screens and images can also be integrated. You also have the option of using the blue screen technique (colour key), masking and transitions.
The “OBS Studio” also records the associated sound or enables the use of external audio hardware, such as a microphone. Up to five audio sources (three microphones/aux sources and two audio files) can be recorded in parallel.
This open source Live streaming server for audio and video supports a number of streaming platforms such as Twitch, Dailymotion, YouTube, Smashcast, Facebook and Beam.pro. Furthermore, alternatively, we can send directly via your own server. For fast work, we can control all important actions with hotkeys, for example starting a stream or recording or switching off a microphone. The auto-configuration wizard is practical for beginners.
Tips:
- How to Live stream games on Youtube using OBS software
-
Install OBS Studio 23.0.1 on Ubuntu
- How to live stream your gameplay on Facebook using OBS and NDI Tools
It is available for Windows, Linux and macOS.
Plex Media Server
Plex Media Server comes with two components: Plex Media Server and Plex clients. The Plex Media Server is a desktop application and gives the Windows, Linux and macOS compatibility. Also, some NAS devices offer in-built Plex Media server option to turn the NAS server into an Audio/image/video streaming server. You can also install the Plex cloud on without any hardware on Dropbox, Google Drive, and OneDrive. Even the Plex Media Server can run on NETGEAR Nighthawk X10 Wireless. Install Plex on Windows 10 with just one command.
This client-server offer client for almost every platform to play the media. The clients available for mobile devices, smart TVs, and streaming boxes, a web app, and the Plex Home Theater. See: Install Plex media server on Ubuntu 19.04 -Simplest method
openflixr 2
OpenFLIXR Media Server is a full-fledged all-in-one media server that can handle the videos, images, and audios. You can install it on any virtual machine like VirtualBox, VMware, ESXi, Parallels Desktop, KVM or Microsoft Hyper-V. It brings some well-known open-source project together such as CouchPotato, SickRage, Headphones, and SABnzbd. Completely web-based and includes monitoring and management tools. It also features Plex Media Server as well as torrent. Install it on VirtualBox
Opencast
Opencast is video streaming server but for corporate events. It lets you recorded any video or event schedule on specific days and times of the week and distribute it to different channels.
Features:
- Split-screen player for viewing video and slide content simultaneously
- Heat maps integration to get most watched video analytics
- REST APIs make it easy to extend to or integrate players
- Easy player interface customization and localization
- Customizable permissions settings
- User directory integration (LDAP, CAS etc.)
- Adaptive Streaming support with HTTP Live Streaming (HLS)
- And more…
If you know some other best and free opensource videos streaming server please let us know and we will try to add that to this list.
Other Resources:
- Create a Forum or Question or Answer Website with free and opensource Forum Software
- Free VPN Server Software
- Best Desktop Media Servers for Windows, Linux, and Mac