Надоело бегать с флешкой, чтобы посмотреть кино или фоточки на большом телеке? Тогда эта статья для Вас!
Практически все современные smart телевизоры, медиа приставки и даже телефоны поддерживают удобный способ трансляции и просмотра цифрового контента в локальной сети. Конкретно речь сейчас пойдёт о DLNA (Digital Living Network Alliance).
DLNA — набор стандартов, позволяющих совместимым устройствам передавать и принимать по домашней сети различный медиаконтент (изображения, музыку, видео), а также отображать его в режиме реального времени. То есть — технология для соединения домашних компьютеров, мобильных телефонов, ноутбуков и бытовой электроники в единую цифровую сеть. Устройства, которые поддерживают спецификацию DLNA, по желанию пользователя могут настраиваться и объединяться в сеть в автоматическом режиме.
Сильно вдаваться в детали особой нужды нет, главное понять что есть несколько типов программ которые работают по этому протоколу, но для обычного пользователя, как мы с вами, нужны только два из них это:
- сервер
- клиент или плеер
Клиент (DMP, digital media player)
С клиентом всё просто, это просто плеер который поддерживает нужный нам стандарт DLNA. В роли плеера выступает устройство подключенное к общей локальной сети. Подойдет практически любой современный телевизор, медиаплеер или смартфон. Если внимательно присмотритесь к меню своего ТВ то, скорей всего, найдете там пункт DLNA, DMP, AllShare или что-то подобное, разные производители по разному обзывают эту функцию. В самом клиенте настраивать обычно ничего не нужно, только выбрать доступный сервер, а далее уже можно смотреть видео, музыку или фото, которые хранятся и транслируются с нашего сервера DLNA.
Клиент DLNA для Android
На смарт ТВ или телефоне c ОС Android можно использовать любой сторонний клиент. Стандартный бывает запрятан далеко в меню и не всегда легко его найти, да и функционал возможно будет скудный. Больше всего мне понравился вот этот BubbleUPnP. На самом деле это большой комбайн который умеет много всего, но просто как клиент для того же MiniDLNA он идеален. А вот тут можете посмотреть список самых удобных программ для просмотра мультимедиа контента на андроиде.
Сервер DLNA (digital media server)
А вот тут уже большой выбор и куча вариаций. Самый очевидный и простой вариант это установить такой сервер там где хранится наш контент. Если это отдельный NAS можно поставить сервер DLNA прям на него, а если это обычный компьютер или ноутбук то нужно ставить сервер туда. Далее уже зависит от операционной системы и ваших предпочтений. Под Windows есть огромный выбор подобных программ, просто выбираем которая нравится и устанавливаем. Настройки там обычно очень простые и проблем возникнуть не должно. Вот список самых популярных серверов DLNA под Windows:
- Plex
- KODI
- Home Media Server
- PS3 Media Server
- Serviio
Единственная проблема которая может возникнуть — это нужно будет не забыть правильно настроить фаерволл и антивирусник, чтобы они не блокировали работу этих программ.
Я же сейчас покажу как настроить сервер DLNA под Linux. Эта инструкция подойдёт для Manjaro Linux и Arch Linux. В качестве программы сервера будем использовать miniDLNA. Я попробовал несколько разных, но это самая простоя и удобная. Она не имеет графического интерфейса, но он и не нужен. Всё будет работать как сервис, нужно только один раз настроить и всё.
Установка miniDLNA на Manjaro Linux
Эта же самая инструкция подойдет на Arch Linux.
Скачиваем и устанавливаем программу:
sudo pacman -S minidlna
Все настройки хранятся в одном файлике:
/etc/minidlna.conf
Запускаем
sudo mcedit /etc/minidlna.conf
#Порт оставляем по дефолту port=8200 #На каком интерфейсе слушать network_interface=eth1 #От какого пользователя будет работать процесс user=minidlna #Мне нужны только видео и фотки поэтому остальное закомментировано, укажите тут путь до вашей папки с контентом media_dir=PV, /home/user/photo_video #media_dir=A,/home/user/dlna/Music #media_dir=P,/home/user/dlna/Pictures #media_dir=V,/home/user/dlna/Video #Имя вашего dlna сервера friendly_name=MyDLNA #где хранить базу db_dir=/var/cache/minidlna #Systemd занимается логами #log_dir=/var/log/minidlna #Отслеживть ли изменение файлов inotify=yes #период поиска новых файлов в секундах #если у Вас телек Samsung с их AllShare, то вот этот последний параметр лучше поставить в 30, что бы телек постоянно не терял сервер notify_interval=600
Можете взять этот готовый конфиг или подправить дефолтный. В большинстве случаев нужно будет поправить только путь до вашей папки с данными. Всё остальное можно оставить стандартно.
Если всё настроено правильно, но данные не показывает на клиенте?
Если нихрена не работает нужно внимательно смотреть права. От кого запускается сервер и есть ли у этого пользователя права в нужные директории?
Если папка с контентом у вас лежит в домашней папке то нужно ещё дать программе туда доступ. Для этого нужно создать файлик /etc/systemd/system/minidlna.service.d/override.conf вот с таким содержимым:
[Service] ProtectHome=read-only
Остаётся поставить службу в автозапуск и запустить:
sudo systemctl enable minidlna.service sudo systemctl start minidlna.service
Первый запуск может немного затянутся так как будет создаваться база со всеми вашими файлами. Если ошибок нет и всё правильно, то можно пробовать подключиться клиентом. Включаем телевизор и роемся там в smart TV и мы должны увидеть MyDLNA с пингвином. Если возникли ошибки пишите в комментарии — вместе разберемся с вашей проблемой.
upd: ещё одна очень подробная и полезная ссылка в википедии со списком всех известных DLNA\UPnP серверов и клиентов под разные платформы: https://en.wikipedia.org/wiki/List_of_UPnP_AV_media_servers_and_clients
Если в minidlna вылазит ошибка:
Это значит сработало какое-то ограничение системы. Нужно просто увеличить это число. Сделать это можно так:
# echo 65538 > /proc/sys/fs/inotify/max_user_watches
sysctl fs.inotify.max_user_watches=66538
minidlna реально классная штука, один раз настроил и работает!
нет каталога minidlna.service.d
/etc/systemd/system/minidlna.service.d/
создал, каталог и override.conf с содержимым:
[Service]
ProtectHome=read-only
но видосиков не видно
После этого нужно перезапустить сервис, или комп ребутнуть.
sudo cp /etc/systemd/system/minidlna.service.d/override.conf /usr/lib/systemd
перенесите папку с конфигом сюда этой командой и потом
sudo systemctl daemon-reload
sudo systemctl restart minidlna.service
после этого все заработало
если не запалит то смотрите где лежит файл сервиса коммандой
sudo systemctl status minidlna.service
Настраивал сегодня и постоянно вылазила ошибка «minidlna.c:670: error:»
Всё перепробовал, оказалось что проблема в неправильно записанном пути к директории. А именно в конце пути не должно быть слеша!
спасибо!»!!!! Все инструкции перечитал 10 раз, а на эту черточку в конце не обратил внимание.