DLNA-сервер за пять минут

()

DLNA - набор стандартов для быстрой передачи медиа-контента между устройствами. DLNA привлекает внимание простотой в использовании и широкой распространённостью: такие технологии как AllShare от Samsung, SmartShare от LG и AirPlay от Apple по сути своей являются реализациями DLNA со своими маркетинговыми названиями.

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

Логотип альянса DLNA

Далее будет показано как можно быстро развернуть на домашнем сервере DLNA-сервер для использования совместно с устройствами на базе Android.

Начальные условия: домашний сервер под управлением Ubuntu 16.04, коллекция фильмов, которую мы хотим смотреть на Smart TV под управлением Android, находится в директории /home/ubuntu/Films. По DLNA мы собираемся отдавать только видео-файлы.

Среди всего множества реализаций DLNA мы выберем minidlna от разработчиков из компании Netgear. Некоторое время назад он был переименован в ReadyMedia, однако в репозитории Ubuntu пакет пока ещё по прежнему называется minidlna. Одной из интересных особенностей minidlna является возможность работы сразу на нескольких сетевых интерфейсах, хотя это нужно далеко не всем. Установим пакет:

apt-get install minidlna

Далее открываем в редакторе файл /etc/minidlna.conf и приступаем к настройке. Первым делом надо указать директорию с медиа-файлами. Поскольку мы собираемся отдавать только видео то надо так же явно это обозначить:

#media_dir=/var/lib/minidlna
media_dir=V,/home/ubuntu/Films

Чтобы упростить клиентам навигацию укажем начальный путь обзора на сервере:

#root_container=.
root_container=V

В параметре "network_interface" перечислим через запятую интерфейсы, на которых будет слушать наш сервер:

network_interface=eth1,wlan0

Ну и напоследок в параметре "friendly_name" укажем имя нашего сервера, которое будут видеть все клиенты:

friendly_name=Home Collection

На этом настройка сервера заканчивается и остаётся только перезапустить сервис для применения настроек:

service minidlna restart

Если что-то пойдёт не так то первым делом надо смотреть файл журнала "/var/log/minidlna.log". Статус сервера и список подключенных клиентов можно смотреть на веб-странице "http://<IP_вашего_сервера>:8200". Выглядит эта страница примерно так:

Статусная страница Minidlna в браузере

С клиентскими устройствами так же всё должно быть просто. Многие устройства из коробки поддерживают протокол DLNA. Если у вас устройство на базе Android и штатного приложения для работы с DLNA у вас нет то можно поставить DLNA-браузер, коих очень много в Google Play. Например у автора этих строк хорошо зарекомендовали себя AnDLNA и GinkgoDlna.

Интересную задачку "подкинул" недорогой Smart TV от Akai (Akai LES-32А64М): он был подключен к локальной сети через Ethernet и не имел штатного DLNA-браузера. Казалось бы что задача решается просто: достаточно установить любой DLNA-браузер из Google Play, однако большинство из них (включая указанные выше AnDLNA и GinkgoDlna) работают только с WiFi-соединением и оказывались не способы "найти" DLNA-сервер через Ethernet соединение.

Перебор нескольких десятков приложений привёл к MediaHouse UPnP / DLNA Browser. Это приложение оказалось "всеядным" и спокойно заработало с DLNA-сервером, будучи подключенным к сети через Ethernet-порт:

MediaHouse UPnP / DLNA Browser на телевизоре Akai LES-32А64М

Для просмотра видео почти все DLNA-браузеры используют внешний плеер. Как оказалось штатный плеер Android на большинстве устройств поддерживает ограниченный набор кодеков. Если возникает проблема при воспроизведении (нет звука и/или видео) то стоит установить сторонний плеер с большим набором кодеков. Хорошим выбором может быть MX Player.

На этом всё. Приятной работы!

Ключевые слова: dlna, upnp, minidlna, airplay, allshare, smartshare, smarttv.

Комментарии:

Anonymous 2017-11-09 20:16:34 (#)

vlc также имеет встроенный бразуер dlna.
Что касается отдельных браузеров я также пробовал bubbleupnp, работает, в том числе способен работать с media renderer устройствами.

По серверам ябы ещё отметил xupnpd, с него отлично скармливать всякие радио, айпитв, ютубы локалочным девайсам.

Как впечатление от телека на андроиде который не тв?
Скайп не пробовался с вебкамерами каким-то?

Anonymous 2017-11-09 20:22:24 (#)

Хотя гулять так гулять, можно ещё и эфирное или кабельное тв также загнать в локалку через тотже dlna с помощью или:
dvb свисток+(astra и аналогичный софт)+xupnpd
Или аппаратным решением типа такого:
http://www.vboxcomm.com/

MooSE 2017-11-10 17:02:49 (#)

vlc также имеет встроенный бразуер dlna.
У многих не работает (у меня в том числе). Есть даже бага открытая (к сожалению ссылки под рукой нет).

Как впечатление от телека на андроиде который не тв?
жить можно. хотя без внешней клавиатуры с тачпадом было тяжко. но с ней - всё весьма юзабельно.

Скайп не пробовался с вебкамерами каким-то?
как-то не возникало необходимости. Пока никто не спрашивал даже и интереса не было:)

Anonymous 2017-11-10 21:21:10 (#)

Про влц:
Да, что на линукс что на виндоус платформах там временами какие-то проблемы.
На винде последняя адекватная вроде 2.0.8 была с этим делом.
На линуксе сейчас 3.0.0 какая-то и вроде работает.
В андроиде оно тоже как оказалось есть, просто неочевидно.

Про тв:
Гм, а тот пульт комплектный он не аэромышка одновременно похоже.

MooSE 2017-11-11 02:51:58 (#)

Гм, а тот пульт комплектный он не аэромышка одновременно похоже.
Нет. Это просто пульт. И с него можно двигать курсор. В принципе хватает чтобы выбрать фильм на DLNA-сервере и начать чего смотреть. На более сложные задачи (например поиск видео на youtube) лучше использовать аппаратную клавиатуру.
Новый комментарий



© 2006-2017 Вадим Калинников aka MooSE