Домашний DLNA сервис на Ubuntu Trusty

Posted by

Поднимаю DLNA сервис в локальной сети

Моя задача сводится к простому, я хочу иметь сервис в своей локальной сети (домашний сервис) посредством которого я смогу с любого устройства (смартфон, планшет, ноутбук, телевизор) просматривать/прослушивать мультимедийный контент (mp3-песни, фильмы, сериалы, фотографии). Чтобы не каждый раз скачивать их с моего хранилища HP MicroServer Gen8, а смотреть прямо с него. И вот выходом из этой ситуации является развертывание DLNA сервиса (по протоколу UPnP/DLNA) в локальной сети. Ранее я разбирал, как поднять такой сервис как PLEX, но вот на нем завести сервис DLNA мне пока не удалось, да и монстрообразный он, лучше бы что-нибудь более простое и не требовательное к ресурсам. Выход к решению поставленной задачи был найден — это утилита именуемая, как minidlna из стандартных репозитариев Server.

Ниже я проведу Вас по всем шагам, как я решил свою задачу, т. е. Как настроить DLNA в ЛВС:

ekzorchik@srv-trusty:~$ sudo rm -Rf /var/lib/apt/lists

ekzorchik@srv-trusty:~$ sudo apt-get update && sudo apt-get upgrade -y

ekzorchik@srv-trusty:~$ uname -a && lsb_release -a

Linux srv-trusty 4.4.0-91-generic #114~14.04.1-Ubuntu SMP Wed Aug 9 08:47:26 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

No LSB modules are available.

Distributor ID: Ubuntu

Description: Ubuntu 14.04.5 LTS

Release: 14.04

Codename: trusty

ekzorchik@srv-trusty:~$ apt-cache search minidlna

minidlna - lightweight DLNA/UPnP-AV server targeted at embedded systems

ekzorchik@srv-trusty:~$ apt-cache show minidlna | grep Version

Version: 1.1.2+dfsg-1~ubuntu14.04.1

Устанавливаю утилиту minidlna в систему:

ekzorchik@srv-trusty:~$ sudo apt-get install minidlna -y

ekzorchik@srv-trusty:~$ sudo cp /etc/minidlna.conf /etc/minidlna.conf.backup

Создаю каталоги мультимедийного контента:

ekzorchik@srv-trusty:~$ sudo mkdir -p /media/minidlna/Movies

ekzorchik@srv-trusty:~$ sudo mkdir -p /media/minidlna/Audio

ekzorchik@srv-trusty:~$ sudo mkdir -p /media/minidlna/Images

ekzorchik@srv-trusty:~$ sudo chown -R minidlna:minidlna /media/minidlna/

ekzorchik@srv-trusty:~$ sudo nano /etc/minidlna.conf

#media_dir=/var/lib/minidlna

#media_dir=/media/minidlna

# в последствии изменил на

media_dir=V,/media/minidlna/Movies

media_dir=A,/media/minidlna/Audio

media_dir=P,/media/minidlna/Images

root_container=B

network_interface=eth0

port=8200

friendly_name=srv-trusty: ekzorchik

model_name=Windows Media Connect compatible (MiniDLNA)

inotify=yes

ekzorchik@srv-trusty:~$ sudo /etc/init.d/minidlna restart

* Restarting DLNA/UPnP-AV media server minidlna [ OK ]

ekzorchik@srv-trusty:~$ sudo /etc/init.d/minidlna status

* minidlna is running

ekzorchik@srv-trusty:~$ sudo netstat -tulpn | grep minidlna

tcp 0 0 0.0.0.0:8200 0.0.0.0:* LISTEN 4148/minidlnad

udp 0 0 0.0.0.0:1900 0.0.0.0:* 4148/minidlnad

udp 0 0 10.7.9.130:41149 0.0.0.0:* 4148/minidlnad

На заметку: следует проверить как у Вас называется сетевой интерфейс, просто у меня на Gen8 с установленной Ubuntu Trusty Server интерфейс именуется, как em1 & em0, а я этого не учел по забывчивости и долго гадал почему через клиент VLC с Ubuntu Trusty Desktop я не вижу сервис minidlna. Посмотрев логи это меня и натолкнуло проверить что при выводе команды ifconfig:

[2017/09/28 14:21:08] getifaddr.c:108: error: Network interface eth0 not found

После нужно посмотреть логи:

ekzorchik@srv-trusty:~$ cat /var/log/minidlna.log | grep WARNING

[2017/09/27 14:48:40] inotify.c:198: warn: WARNING: Inotify max_user_watches [8192] is low or close to the number of used watches [4] and I do not have permission to increase this limit. Please do so manually by writing a higher value into /proc/sys/fs/inotify/max_user_watches.

ekzorchik@srv-trusty:~$ sudo nano /etc/sysctl.conf

#MiniDLNA log fix

fs.inotify.max_user_watches = 100000

ekzorchik@srv-trusty:~$ sudo sysctl -p

fs.inotify.max_user_watches = 100000

ekzorchik@srv-trusty:~$ sudo /etc/init.d/minidlna force-reload

после посмотрев логи ошибок на этот счет не обнаружил.

Если перейти через браузер по URL адресу: http://IP&DNS:8200, то можно увидеть кто обнаружил данные DLNA сервис, какие устройства и количество загруженного мультимедийного контента:

Информационный Web-интерфейс сервиса MiniDLNA

Наполняю содержимым:

aollo@work:~$ scp Downloads/Bones_S2_\[tfile.ru\]/* ekzorchik@10.7.9.130:/home/ekzorchik/

ekzorchik@srv-trusty:~$ sudo mkdir -p /media/minidlna/Movies/Bones/Sezon2

ekzorchik@srv-trusty:~$ sudo mv *.avi /media/minidlna/Movies/Bones/Sezon2/

ekzorchik@srv-trusty:~$ sudo chown -R minidlna:minidlna /media/minidlna/

На заметку: Но чтобы в каталог /media/minidlna/ у меня был доступ можно текущую учетную запись добавить в группу minidlna после чего подняв еще на текущей системе пакет SAMBA настроить что с любой системы я смогу наполнять данный каталог мультимедийным контентом.

ekzorchik@srv-trusty:~$ sudo usermod -aG ekzorchik minidlna

На заметку: В своей работе сервис minidlna использует файловую базу данных sqlite, находится она:

ekzorchik@srv-trusty:~$ ls /var/cache/minidlna/files.db -lh

-rw-r--r-- 1 minidlna minidlna 76K Sep 27 16:06 /var/cache/minidlna/files.db

в нее входят все настройки, информация по мультимедийному контенту.

Проверяю, а увидит ли Windows 7 через штатный проигрыватель файл на DLNA сервисе, увидела но только без папок а общем списком

Так видим Windows Media Player файлы на DLNA сервисе - без какой-либо структуры

На рабочей станции под управлением Ubuntu Trusty Desktop amd64 (Gnome Classic) установив проигрыватель VLC он отобразил все как нужно:

Пуск — Все программы — VideoLAN — Вид — Плейлист и с левой стороны переходим: (Локальная сеть) Протокол UpnP вижу srv-trusty: minidlna

Раскрываю: Movies — Bonis — Sezon2

А клиент VLC видит ресурс DLNA со структуройщелкнув по видео оно начинает воспроизводиться, чтобы вернуть обратно нужно щелкнуть «Вид» — «Плейлист», но в то же время видео если оно не остановлено будет проигрываться:

 

Щелкнув по видео и нажав через правый клик мышью "Воспроизвести" начнется воспроизведение по сети с DLNA сервиса

Поставил на свою систему Ubuntu Trusty Desktop amd64 (Gnome Classic) проигрыватель VLC и он также увидел мой DLNA сервис. Щелкнув по видео файлу поехало из воспроизведение, в точности как и на Windows системе. Вот что значит правильный проигрыватель где разработчики делают не отвали, а с полной отдачей нормальный продукт.

На заметку: При использовании сервиса DLNA столкнулся со следующими наблюдениями, если конечное устройство подключено через ethernet кабель к роутеру то видео/аудио идет сразу же и без рывков, а если я с планшета (по Wi-Fi) подключаюсь и запускаю видео оно воспроизводится, но стоит промотать и видео начинает рваться/пикселизироваться, а с аудио такого замечания у меня нет. Вообще нужно еще понаблюдать.

На этом у меня все, с уважением автор блога Олло Александр aka ekzorchik.