Dlna server linux mint

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

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

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

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

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

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

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

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

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

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

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

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

С клиентскими устройствами так же всё должно быть просто. Многие устройства из коробки поддерживают протокол 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-порт:

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

Источник

Linux Mint 17 и DLNA

Зачем это все надо

Linux Mint — отличная домашняя ОС. Богатый выбор графических сред на любой вкус, простая и понятная даже новичку установка, сразу после установки имеем основной набор необходимого софта, удобный менеджер приложений, основные мультимедийные кодеки. В общем, отличная система для перехода и ознакомления с Linux.

Но возникает проблема для тех, у кого нет дома NAS или чего-то подобного, а смотреть контент с ПК на других устройствах, поддерживающих DLNA хочется. Под Linux существует множество различных DLNA-серверов, но оптимальным, все же, является MiniDLNA. И тому есть несколько причин. Во-первых, это типичный Unix-way: этот сервер является именно DLNA-сервером, а не комбайном с кучей свистелок, при этом контент без проблем воспринимается на любом устройстве. Даже телевизоры Samsung со своим AllShare прекрасно подключаются к нему. Также можно отметить и замечательную скорость работы и нетребовательность к ресурсам этого сервера.

Читайте также:  Oracle vm ��� ���������� ������

И все бы было хорошо, но вот в с помощью команды

установить его не получится — нет его в репозитарии.

Существуют разные варианты устранения этого недоразумения, но самый правильный путь — установка из исходников.
Чтобы не отвратить возможных новоиспеченных линуксоидов с этого пути и, возможно, помочь кому-то, напишу как обойти подводные камни, ибо информации много, но в начале пути людям нужно попроще.

Подготовка

Если будете выполнять команды в консоли, запущенной с правами root, команду sudo писать не нужно.

Для начала нужно установить необходимые библиотеки:

И устанавливаем сами библиотеки:

Самая свежая версия MiniDLNA на данный момент — 1.1.3, ее можно скачать здесь, либо загрузить из консоли: ключ перед адресом нужен, чтобы сохранилось оригинальное имя, с выхдом новой версии имя файла будет отличатся. После этого архив нужно распаковать:

Теперь перейдем в распакованную папку с исходниками

Если вы хотите, чтобы на устройстве отображались сразу папки с файлами, нужно немного подправить код:

Для отключения запроса способа отображения файлов нужно в папке с исходниками (minidlna-1.1.3, мы в нее уже должны были перейти) подправить файл upnpsoap.c, но сначала сделаем его резервную копию:

и откроем в редакторе поиском (F6), ищем процедуру:

В начале процедуры выполняется разбор SOAP/XML-запроса, затем его обработка и возврат результата. Разбор запроса завершается формированием отладочного сообщения:

Далее реализован выбор корневого контейнера в зависимости от конфигурационного параметра root_container:

Сразу после этого блока и перед блоком с запросами к БД добавляем код перенаправления папок для видео, музыки и изображений:

В итоге правленный фрагмент должен выглядеть следующим образом:

Чтобы упростить процедуру последующего обновления, сохраним патч с внесенными изменениями:

Теперь вместо редактирования файла, достаточно применить патч:

Теперь можно переходить к конфигурированию.

Если вам это не нужно, переходите сразу к конфигурированию:

Установка

1) Для тех, кто в дальнейшем захочет обновить версию, предыдущую можно удалить (конфигурационные файлы при этом сохраняются), если этого не сделать, то в случае, если в новой версии состав установочных файлов изменится, в /usr/local могут остаться старые файлы, при первой установке — переходим сразу к пункту 2.

Для удаления заходим в папку с предыдущей установкой и выполняем команду: 2) Запускаем установку (в комментариях предложили более правильный путь, чем make install):

Ключ -D указывает, что должен быть создан Debian-пакет

3)Если мы производим первоначальную установку, нужно создать init-скрипт: , если мы обновляем версию, больше ничего делать не нужно, при первоначальной установке у нас откроется пустой файл, в который нужно внести следующий код:

, сохранить комбинацией клавиш Ctrl+O и выйти из редактора — Ctrl+X.

4) После этого даем права на запуск скрипта:5) И активируем запуск init-скрипта: 6) Так как по умолчанию служба запускается под пользователем minidlna, нам нужно создать соответствующую учетную запись:

7) Правим файл конфигурации сервера: В нем нам нужно следующее содержимое (здесь подправлен интервал, с которым сервер себя анонсирует, так как не все телевизоры опрашивают сервер, также вам надо прописать путь к папке с медиа, к примеру так: «media_dir=V,/mnt/sdb6/Video/Alex/» в соответствующем разделе файла):

Обычно после этого не требуется дополнительных настроек, но если есть проблемы с доступом к медиа (или хотите перестраховаться), можно настроить права доступа:

Поскольку служба работает под пользователем с ограниченными правами, публикуемые папки и файлы должны быть доступны на чтение для всех пользователей, следовательно, иметь разрешения 644: «rw- r— r—», для файлов и 755: «rwx r-x r-x», для папок.

Проверяем доступность для каждой папки, заданной в minidlna.conf, командой:Если папка недоступна, задаем права доступа:Вышестоящие папки также должны быть доступны на чтение всем пользователям. Проверяем доступность на чтение каждой папки, указанной в пути. Для вышестоящих папок используем chmod без ключа -R, если не требуется сброс разрешений для всех дочерних файлов и папок.
В качестве альтернативы смене разрешений, можно запустить MiniDLNA от имени пользователя или группы-владельца файлов. Для этого необходимо задать параметры USER и GROUP в /etc/default/minidlna, и сменить владельца папки /var/lib/minidlna командой:

Запуск сервера

Проверяем, работает ли служба, также смотрим параметры запуска:

Проверяем, слушается ли порт:

В случае успешного старта, лог должен быть примерно следующим:

Если видим: «WARNING: Inotify max_user_watches [8192] is low.», необходимо увеличить число дескрипторов слежения inotify до 100 000. Для этого в файл /etc/sysctl.conf добавим строки:

Или копипастом команды:

Изменение параметра вступит в силу после перезагрузки системы.
Открываем в браузере адрес.сервера:8200, видим количество файлов в библиотеке, начиная с версии 1.1.2, также отображается список подключенных клиентов.

Настройка DLNA/UPnP-AV сервера завершена.

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

Служба при этом будет перезапущена, подключенные клиенты будут отключены.

Читайте также:  Stop linux service from starting

Для сканирования медиа-библиотеки при каждом старте системы можно задать ключ запуска: «-R» в параметре DAEMON_OPTS в файле /etc/default/minidlna. Сканирование большой медиа-библиотеки существенно нагружает диск, что может замедлить загрузку системы.

Полное формирование каталога может занять несколько минут. Сканирование папок выполняется в порядке их объявления в конфиге. Файлы из небольших папок, объявленных в конфиге выше, появятся в каталоге в самом начале процесса сканирования. Крупные папки с редко воспроизводимым контентом имеет смысл размещать в конфиге последними.

Все это опробовано на своей системе, пользуйтесь на здоровье. Надеюсь, количество пользователей Linux будет постоянно увеличиваться.

Источник

Linux Mint Forums

Welcome to the Linux Mint forums!

Нужен DLNA сервер

Нужен DLNA сервер

Post by Mnogolik » Thu Jan 28, 2016 1:46 am

Доброго времени суток, прошу Вас помочь подобрать DLNA сервер для Linux Mint 17.3, необходим просмотр фильмов через локальную сеть.

На данный момент пользуюсь Twonky, но проблема в том, что телевизор Philips не видит папки и приходится все запускать с компьютера, но это не удобно.

Пробовал MediaTomb, но при попытке зайти в папку /media (там находятся диски) выпадает ошибка и я не могу расшарить файлы с других дисков.

Попробовал ps3 media server — все хорошо, телевизор его видит, но файлы медиа на теливизоре не запускаются или тормозят, видать из-за транскодирования контента, да на Винде он не дружил с моим телевизором.

Minidlna и Serviio media server мне просто не удалось поставить, т.к. не очень пока знаком с линукс.

Линуксом пользуюсь неделю, до этого 15 лет сидел на Windows.

Прошу подсказать какой dlna сервер, или рабочую инструкцию по установке и настройке.

Re: Нужен DLNA сервер

Post by darvin44in » Sat Feb 06, 2016 11:23 am

Добрый день! Minidlna — советую его — там дел на 3-5 минут. Один файл подправить и все работает — использую его из-за простоты.

Установить:
sudo apt-get install minidlna
Настроить:
sudo gedit /etc/minidlna.conf

.
media_dir=/ваша_директория_с_файлами
.
Сохранить и закрыть файл

Далее перезапуск сервиса:
sudo service minidlna force-reload

Если не отображается содержимое /ваша_директория_с_файлами
Установить разрешения:
sudo chmod 777 -R /ваша_директория_с_файлами

Re: Нужен DLNA сервер

Post by LeoPoldSl » Mon Feb 29, 2016 6:54 pm

Re: Нужен DLNA сервер

Post by DartVader » Fri Mar 11, 2016 7:45 pm

Re: Нужен DLNA сервер

Post by DartVader » Fri Mar 11, 2016 7:56 pm

Источник

DLNA сервер для Linux Debian / Ubuntu на базе MiniDLNA

Настраиваем домашний DLNA-сервер на базе MiniDLNA, он же ReadyMedia в Linux Debian или Ubuntu Server.

Содержание

Установка MiniDLNA

Простейшим способом установки является, установка пакета из репозитория вашего дистрибутива:

Установка Sudo

Если в вашей системе отсутствует команда sudo, желательно ее установить. Sudo нам потребуется в процессе настройки, для тестирования прав доступа к папкам с медиа-файлами.

Добавляем пользователя в группу sudo:

Выходим из системы и входим заново, чтобы изменение группы вступило в силу.

Настройка MiniDLNA

Правим файл конфигурации:

Как минимум, потребуется задать путь к папке с медиа-файлами, параметр: «media_dir». Также можно задать имя сервера, отображаемое клиентом, параметр: «friendly_name».

В случае если наш DLNA-сервер по совместительству является интернет-шлюзом, также необходимо задать внутренний сетевой интерфейс, параметр: «network_interface».

Параметры в комментариях файла конфигурации содержат значения по умолчанию.

Проверяем параметры init-скрипта /etc/default/minidlna:

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

Поскольку служба работает под пользователем с ограниченными правами, публикуемые папки и файлы должны быть доступны на чтение для всех пользователей, следовательно, иметь разрешения 644: » rw- r— r— «, для файлов и 755: » rwx r-x r-x «, для папок.

Проверяем доступность для каждой папки, заданной в minidlna.conf, командой:

Если папка недоступна, задаем права доступа:

Вышестоящие папки также должны быть доступны на чтение всем пользователям. Проверяем доступность на чтение каждой папки, указанной в пути. Для вышестоящих папок используем chmod без ключа -R, если не требуется сброс разрешений для всех дочерних файлов и папок.

В качестве альтернативы смене разрешений, можно запустить MiniDLNA от имени пользователя или группы-владельца файлов. Для этого необходимо задать параметры USER и GROUP в /etc/default/minidlna, и сменить владельца папки /var/lib/minidlna командой:

Запуск MiniDLNA

Проверяем, работает ли служба, также смотрим параметры запуска:

Проверяем, слушается ли порт:

В случае успешного старта, лог должен быть примерно следующим:

Если видим: » WARNING: Inotify max_user_watches [8192] is low. «, необходимо увеличить число дескрипторов слежения inotify до 100 000. Для этого в файл /etc/sysctl.conf добавим строки:

Или копипастом команды:

Изменение параметра вступит в силу после перезагрузки системы.

Открываем в браузере http://адрес.сервера:8200, видим количество файлов в библиотеке, начиная с версии 1.1.2, также отображается список подключенных клиентов.

Читайте также:  Курсоры windows с названиями

Настройка DLNA/UPnP-AV сервера завершена.

Если вместо сообщений и папок-контейнеров MiniDLNA отображаются знаки вопроса, отключаем локализацию.

Если был установлен пакет:

При установке из исходников:

Перезапускаем MiniDLNA с повторным сканированием библиотеки.

Сканирование медиа-библиотеки MiniDLNA

При появлении ошибок в каталоге, необходимо выполнить повторное сканирование файлов.

Для этого удалим базу Minidlna и перезапустим службу:

Для сканирования медиа-библиотеки при каждом старте системы можно задать ключ запуска: «-R» в параметре DAEMON_OPTS в файле /etc/default/minidlna. Сканирование большой медиа-библиотеки существенно нагружает диск, что может замедлить загрузку системы.

Полное формирование каталога может занять несколько минут. Сканирование папок выполняется в порядке их объявления в конфиге. Файлы из небольших папок, объявленных в конфиге выше, появятся в каталоге в самом начале процесса сканирования. Крупные папки с редко воспроизводимым контентом имеет смысл размещать в конфиге последними.

Установка MiniDLNA из исходников

Дальнейший материал был написан во времена Debian 7 и не тестировался на современных версиях.
Как минимум, инит-скрипты и юнит-файлы берем из deb-пакета.

Устанавливаем сборочные зависимости:

Если при установке зависимостей возникает ошибка: «Невозможно найти пакет с исходным кодом для minidlna». Значит, пакет MiniDLNA отсутствует в вашей версии дистрибутива. В этом случае придется установить зависимости вручную:

Создаем папку для исходников в профиле пользователя и переходим в нее:

Сборка стабильной версии MiniDLNA

Загружаем исходники последней стабильной версии:

С ключом —trust-server-name, будет сохранено исходное имя файла: «minidlna-1.1.4.tar.gz», номер версии может отличаться. Если ключ не указан, файл будет сохранен под именем: «download».

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

Сборка текущей разрабатываемой версии MiniDLNA из Git-репозитория

Для сборки из Git-репозитория, потребуются дополнительные пакеты:

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

Создаем скрипт автоконфигурации:

Установка

Удаляем пакет, если он был установлен ранее:

Устанавливаем собранную версию:

При первичной установке, копируем minidlna.conf в папку /etc:

Если скрипт остался от оригинального пакета Debian, достаточно исправить путь к исполняемому файлу, выделенный красным. Если файл отсутствует, копируем следующий листинг:

Для дистрибутивов на базе Debian 6 в init-скрипте необходимо скорректировать параметр PIDDIR, для современных дистрибутивов корректировка не требуется.

Разрешаем запуск скрипта:

Активируем запуск init-скрипта в rc.d:

По умолчанию служба запускается под пользователем minidlna, создаем учетную запись:

Также, при первичной установке, потребуется создать файл параметров init-скрипта (/etc/default/minidlna), рассмотренный далее, в процессе настройки.

При установке из исходников, minidlna.conf требует дополнительной корректировки. В пакете Debian пути по умолчанию были изменены, теперь их необходимо прописать явно.

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

Задаем путь к лог-файлу:

Отключение запроса способа отображения файлов: All Files, Folders

Настраиваем отображение содержимого папок Music, Pictures, Video без промежуточного запроса способа их отображения.

Частично вопрос можно решить установкой параметра: «root_container=B» в minidlna.conf. При этом сам запрос не отключается, но содержимое папок отображается непосредственно в корневом контейнере.

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

Отключение виртуальных папок в MiniDLNA версии 1.1.4 и выше

Для версии 1.1.4 применяем патч, и добавляем параметр disable_extended_directories=yes в minidlna.conf. Данный патч войдет в состав следующей версии MiniDLNA, для более поздних версий достаточно задать параметр в файле конфигурации.

Получаем и устанавливаем пакет с исходниками, как описано в разделе: «Установка или обновление MiniDLNA из исходников».

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

Загружаем и применяем патч:

Собираем и устанавливаем исправленную версию:

Редактируем файл конфигурации:

Перезапускаем службу с повторным сканированием медиа-библиотеки:

В системах на базе systemd для повторного сканирования потребуется удалить базу данных вручную:

Отключение виртуальных папок в MiniDLNA версии 1.1.3 и ниже

Получаем и устанавливаем пакет с исходниками, как описано в разделе: «Установка или обновление MiniDLNA из исходников».

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

Необходимые константы идентификаторов папок объявлены в scanner.h

Нам необходимо при запросе папок MUSIC_ID, VIDEO_ID и IMAGE_ID, перенаправить клиента в MUSIC_DIR_ID, VIDEO_DIR_ID и IMAGE_DIR_ID соответственно.

Обработка запросов клиента реализована в файле upnpsoap.c.

Сохраняем резервную копию файла:

Активируем поиск (F6), ищем процедуру: «BrowseContentDirectory».

В начале процедуры выполняется разбор SOAP/XML-запроса, затем его обработка и возврат результата.

Разбор запроса завершается формированием отладочного сообщения:

Далее реализован выбор корневого контейнера в зависимости от конфигурационного параметра root_container:

Сразу после этого блока и перед блоком с запросами к БД добавляем код перенаправления папок для видео, музыки и изображений:

В итоге правленный фрагмент должен выглядеть следующим образом:

Собираем и устанавливаем исправленную версию:

Проверяем результат. Папки должны открываться без запроса способа отображения.

Ссылки

Список DLNA-серверов и клиентов в Википедии.

Источник

Оцените статью