IT ExpertКак это сделатьСам себе админ

Как сделать сервер DLNA

Сергей Грицачук | 16.05.2018

ВКонтакт Facebook Google Plus Одноклассники Twitter Livejournal Liveinternet Mail.Ru

Как сделать сервер DLNA

Идея обзавестись DLNA-сервером появилась у меня в тот момент, когда в очередной раз пропало кабельное ТВ вместе с доступом в Интернет (строители повредили кабель), а флеш-накопитель, куда я сохранил любимое видео о рыбацких хитростях, внезапно оказался «мертвым». Надежда провести вечер в созерцании прекрасного, таким образом, накрылась, и со свободным временем надо было что-то решать. Перспектива крутить то самое видео на мониторе ПК не прельщала, равно как и попытка достучаться смартфоном до общей папки в локальной сети… И тут появилась идея: если на ресивере, подключенном к телевизору, есть DLNA-клиент, а в соседней комнате простаивает почем зря неттоп под управлением Ubuntu, то почему бы не поднять соответствующий сервер? Дело за малым: разобраться, как это сделать, и воплотить задуманное в реальность.

DLNA, IP, UPnP, Wi-Fi и другие

Сперва немного о самой технологии. DLNA (Digital Living Network Alliance) создавалась как средство передачи медиаданных по обыкновенной локальной сети посредством стандартного протокола TCP/IP. Суть идеи в том, чтобы максимально упростить процедуру сопряжения устройств – источников видео-, фото- и аудиоматериалов и средств воспроизведения и отображения информации. В последнюю категорию входят, кстати, не только телевизоры, но и принтеры. А в первую – мобильные гаджеты, от смартфонов до видеокамер. Но, конечно же, в быту наиболее часто DLNA используют для передачи контента между компьютером или сетевым хранилищем (NAS) и телевизором.

Если в качестве телевизора выступает SmartTV, то речь идет о прямой связке «компьютер – телевизор». В противном случае в цепочке появится посредник: медиасервер, игровая консоль, спутниковый тюнер, ресивер кабельного телевидения, словом, любая многофункциональная приставка к устройству отображения. Главное, чтобы она умела работать в качестве DMP (Digital Media Player), то есть позволяла искать сервер и управлять предоставленным им контентом. В моей ситуации в роли проигрывателя выступил спутниковый тюнер с встроенной ОС на базе Linux – у него был полный набор средств для работы в качестве DLNA-приемника.

Что еще? Ах да, нужно, чтобы роутер, к которому будут подсоединяться все устройства, поддерживающие DLNA, поддерживал технологию UPnP (Universal Plug and Play) – именно она позволит этим устройствам легко находить друг друга, устанавливать и поддерживать связь. Но и этого мало – важна активность самой UPnP (попросту убедитесь, что в настройках эта опция включена).

Вот, собственно, и все, что требуется для предварительной подготовки. Какие-то особенные требования на пропускную способность не оговариваются, но на практике рекомендуется использовать протокол Wi-Fi не ниже 802.11n, а лучше – кабельное подключение от 100 Мбит/. Так что постарайтесь подсоединить к маршрутизатору кабелем хотя бы сервер, особенно если планируется смотреть видео с нескольких устройств одновременно.

img

Устанавливаем сервер DLNA

В качестве серверной части я решил воспользоваться minidlna (можно было взять uShare или xupnpd) – эта утилита проста в настройке и весьма надежна. Возможно, некоторых пользователей, привыкших решать такие задачи посредством графического интерфейса, отпугнет необходимость работать ручками, то есть править конфигурационные файлы в текстовом редакторе, но на самом деле это несложно. Здесь и далее я буду приводить примеры, которые работают под Ubuntu Linux, но большинство действий также сработает и на других сборках.

Перед тем как устанавливать основной пакет ПО, следует установить требуемый набор библиотек. Возможно, в вашей системе они уже имеются, но рисковать не стоит: удовлетворение зависимостей – гарантия работоспособности продукта. Итак, открываем терминал, и вводим следующую команду:

sudo apt-get install gcc debhelper libavcodec-dev libavformat-dev libavutil-dev libexif-dev libflac-dev libid3tag0-dev libjpeg-dev libogg-dev libsqlite3-dev libvorbis-dev

Затем устанавливаем сам minidlna. Для Ubuntu проще всего обратиться к репозиторию:

sudo apt install minidlna

Для других систем, возможно, потребуется собирать традиционно, из исходников. Тоже ничего сложного:

1. sudo apt-get install checkinstall

2. Загружаем и распаковываем исходники актуальной версии (на момент написания статьи – 1.2.1):

wget http://downloads.sourceforge.net/project/minidlna/minidlna/1.2.2/minidlna-1.2.1.tar.gz

3. Распаковываем загруженный тарбол:

tar -xf minidlna-1.2.1.tar.gz

4. Переходим в созданную папку:

cd /minidlna-1.2.1

5. Запускаем конфигуратор:

./configure

6. И наконец, финальная часть – собираем пакет:

sudo checkinstall -D

На этом установочная суета прекращается – если, конечно, все прошло без ошибок. Осталось выполнить настройки.

img

Настраиваем сервер minidlna

Первым делом проверяем наличие скрипта init в папке /etc/init.d/minidlna. Если там нет, придется отыскать его содержимое в Интернете и создать файл вручную. Затем надо выдать скрипту требуемые полномочия командой:

sudo chmod 755 /etc/init.d/minidlna

и активировать его запуск, набрав:

sudo update-rc.d minidlna defaults

Следующий шаг – создание пользователя, под которым и будет работать сервер:

sudo adduser – system – home /var/lib/minidlna – group – gecos "MiniDLNA server" minidlna

И наконец, открываем любимым редактором (у меня это nano) конфигурационный файл:

sudo nano /etc/default/minidlna

и вносим в него обязательные правки. Обязательно укажите каталоги, в которых размещены ваши медиафайлы:

#

media_dir=A,/home/Аудио

media_dir=V,/home/Видео

media_dir=P,/home/Фото

#

По возможности располагайте каталоги на тех дисках, к которым есть разрешенный доступ. В частности, идея разместить информацию на подключаемых дисках Windows не самая лучшая, откажитесь от нее сразу. Также не стоит связываться с дисками, размеченными в формате ntfs или fat32. Из-за невозможности корректно назначить права доступа к файлам этих файловых систем придется привязывать minidlna к суперпользователю, а это серьезная дыра в безопасности. Идеальный вариант – переместить медиафайлы в каталоги по адресам:

/var/lib/minidlna/video

/var/lib/minidlna/audio

/var/lib/minidlna/photos

А на нативных жестких дисках Linux достаточно прописать полномочия командой:

sudo chmod -R 0777 /имя папки/

Не помешает сменить и имя своему серверу, поскольку по умолчанию присваивается “$HOSTNAME:$USER”, то есть имя_компьютера:пользователь. Достаточно добавить в конфигурационный файл строчку вида:

friendly_name=Домашний_DLNA,

чтобы отображаемое имя ресурса стало красивым и удобочитаемым.

img

Запуск и управление сервером

После переноса библиотек медиафайлов на их законное место и прописывания прав требуется запустить DLNA-сервер командой:

sudo service minidlna force-reload

К слову, ею же выполняется перезапуск демона в случае возникновения проблем. Для того чтобы убедиться в работоспособности процесса, выполняем команды:

ps ax | grep minidlna

sudo ss -4lnp | grep minidlna

cat /var/log/minidlna.log

Результат должен быть примерно такой, как на скриншоте: программа «слушает» порт и ожидает распоряжений от «клиента». К слову, демону требуется некоторое время на сканирование контента и добавление его в базу, так что все содержимое будет отображено не сразу. Посмотреть, сколько элементов найдено, можно уже в графическом режиме, через браузер, воспользовавшись командой:

http://localhost:8200/

У меня вся операция по запуску и настройке DLNA-сервера заняла около получаса, причем значительную часть этого времени пришлось потратить на копирование медиафайлов и создание ссылок. Одним словом, ничего трудоемкого.

Как оказалось, смотреть видео без проблем можно с трех устройств одновременно – для машинки с процессором частотой 1,1 ГГц и ОЗУ емкостью 4 Гбайт это не составило затруднений. Так что флешка отправилась в утиль, общие папки для видео-аудио-музыки были удалены и беготня между компьютером и телевизором наконец-то предана забвению. Чего, собственно, желаю всем ленивым двигателям прогресса!

Журнал IT-Expert № 05/2018    [ PDF ]    [ Подписка на журнал ]

Об авторах

Сергей Грицачук

Сергей Грицачук

Обозреватель, аналитик, инженер-системотехник. Действительный член «Клуба экспертов Intel», сертифицированный специалист (Мюнхен) по сетевым и серверным технологиям с 1993 года. Компьютерами и сопутствующими решениями занимается с 1985-го, участник многочисленных выставок, обладатель наград за оригинальные схемотехнические и программные разработки. Первый диплом получил в 1984 году от «Патентного бюро» журнала «Юный техник». Увлекается охотой, рыбалкой, водно-моторным спортом. «Утомившись суетой цивилизации, предпочитаю уединенную жизнь вдали от нее. Все свободное время отдаю семье и детям».


Поделиться:

ВКонтакт Facebook Google Plus Одноклассники Twitter Livejournal Liveinternet Mail.Ru

Загрузка...

Другие материалы рубрики

Компании сообщают

Мероприятия

16.05.2019 — 25.06.2019
Growth Marketing Summit

онлайн

21.05.2019
Digital Construction Forum 2019

Центр цифрового лидерства SAP Космодамианская наб., 52к7,

24.05.2019
Google Cloud Day

Москва, ул.Балчуг. д. 7, БЦ Балчуг Плаза

27.05.2019
Conference for best brands

Москва, Центр "Открытый мир"

28.05.2019
Smart City 2019: госпроекты и их реализация

Москва, Веранда ЦМТ, Краснопресненская наб., 12