Меню Рубрики

Установка dlna сервер debian

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, также отображается список подключенных клиентов.

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

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

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

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

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

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

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

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

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

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

Установка Min >Дальнейший материал был написан во времена 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-серверов и клиентов в Википедии.

источник

Установка и настройка DLNA сервера в Debian Linux

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

Не стал мудрствовать лукаво и поставил minidlna — сервер, который есть в репозиториях Debian.

После установки нужно отредактировать конфигурационный файл /etc/minidlna.conf. Прописываем каталог с видеофайлами:

Слушаем интерфейс eth0 и IP адрес сервера — 192.168.0.1:

Раскомментируем автоматическое обновление содержимого каталогов:

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

Так как я собираюсь показывать только видео, укажу это в явном виде:

# systemctl restart minidlna

и получаю в логе /var/log/minidlna.log следующее:

inotify.c:182: warn: WARNING: Inotify max_user_watches [8192] is low or close to the number of used watches [252] 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.

Ладно, эта проблема поправима:

Читайте также:  Установка дверных замков снип

# echo 65536 > /proc/sys/fs/inotify/max_user_watches

# systemctl restart minidlna

и одновременно смотрю лог:

[2012/12/10 11:00:35] minidlna.c:898: warn: Starting MiniDLNA version 1.0.24 [SQLite 3.7.13].
[2012/12/10 11:00:35] minidlna.c:926: warn: Creating new database…
[2012/12/10 11:00:35] minidlna.c:1006: warn: HTTP listening on port 8200
[2012/12/10 11:00:35] scanner.c:727: warn: Scanning /home/alexey/downloads/video
[2012/12/10 11:00:55] scanner.c:798: warn: Scanning /home/alexey/downloads/video finished (436 files)!
[2012/12/10 11:00:56] playlist.c:125: warn: Parsing playlists…

Тадаам! Всё работает. Открываю в браузере страницу http://192.168.0.1:8200/ и вижу:

MiniDLNA status
Audio files: 0
Video files: 436
Image files: 0

Для проверки обновления содержимого каталога копирую в папку /home/alexey/downloads/video/ первый попавшийся .avi файл. Смотрим страницу статуса:

MiniDLNA status
Audio files: 0
Video files: 437
Image files: 0

Обновление работает, порядок.

Теперь у меня нет необходимости бегать с флэшкой от компьютера к телевизору, хотя и замена телевизора встала в копеечку. Но чего только не сделаешь во имя здоровой лени и автоматизации, правда? 😉

источник

Записки IT специалиста

Технический блог специалистов ООО»Интерфейс»

Домашний медиа-сервер (NAT + Samba + Torrent + DLNA) на платформе Ubuntu Server. Часть 2.

В прошлой статье мы начали рассматривать настройку домашнего медиасервера на базе Ubuntu Server 12.04 и рассказали как настроить общий доступ к сети Интернет и сетевое хранилище. Сегодня мы разберем настройку торрент-клиента и DNLA-медиасервера, что позволит получать доступ к мультимедийному контенту с самого широкого спектра бытовых и мобильных устройств.

Торрент-клиент

Можно без преувеличения сказать, что сегодня торренты стали одним из основных способов получения контента. Вопрос лицензионной чистоты мы оставим за кадром, пусть каждый сам принимает для себя решение, хотя в порядке личного мнения могу сказать, что качество многих выходящих в прокат «фильмов» настолько низко, что их авторам впору приплачивать зрителям за бесполезно потраченное время.

Мы же поставим себе иную цель: настроить простой и удобный торрент-клиент, который будет автоматически закачивать торренты на нашем сервере. В качестве клиента мы будем использовать transmission, который может работать в качестве службы и лучше всего подходит для работы на сервере.

Для установки серверной версии transmission выполните команду:

Перейдем к настройкам, которые хранятся в файле /etc/transmission-daemon/settings.json.

Внимание! transmission-daemon имеет одну неприятную особенность, если в момент изменения конфигурационного файла служба была запущена, то при повторном запуске она откатит все внесенные изменения. Поэтому все настройки следует производить только при остановленной службе!

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

Прежде всего определимся с рабочими директориями. Загруженные торренты будем помещать в уже существующую папку Downloads (/data/Downloads). Для самих торрент-файлов создадим специальную папку Torrents, содержимое которой будет отслеживаться нашим клиентом и при появлении в ней нового торрент-файла загрузка будет начинаться автоматически. В этой же папке создадим скрытую директорию для недокачаных торрентов .incomplete, чтобы они не смущали ваших домашних и были бы им недоступны до момента полной закачки.

Создадим директории и установим нужные права:

Обращаем внимание, что точка в начале имени файла или папки делает его скрытым. Теперь откроем /etc/samba/smb.conf и добавим еще один общий ресурс:

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

Создав необходимую структуру директорий перейдем к настройке торрент-клиента, откроем /etc/transmission-daemon/settings.json и начнем его редактирование. Первым делом включим веб интерфейс и зададим параметры доступа к нему:

Последовательно пробежимся по настройкам. Первая строка требует аутентификации при доступе, вторая задает ip-адрес на котором будет работать веб-интерфейс, третья его включает. В следующей строке задается пароль, при сохранении файла он будет автоматически заменен на хэш. Затем указывается порт, url-адрес и имя пользователя. Две последние строки включают «белый список», т.е. откуда можно заходить в веб-интерфейс.

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

Читайте также:  Установка газового счетчика воды

Разрешим отслеживать папку на предмет появления новых торрент-файлов, для этого в конец файла добавим следующие строки (не забываем про синтаксис):

После чего настроим торрент-опции:

Данные настройки включают DHT, указывают порт, на котором следует принимать входящие соединения, включает автоматический форвардинг портов с использованием UPnP или NAT-PMP, что позволяет принимать входящие соединения даже находясь за NAT и, последняя опция, включает протокол µTP.

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

Теперь можно запустить службу:

и зайти в веб-интерфейс, набрав в браузере адрес http://ubuntu-home.local:9091. Для проверки поместим в общую папку Torrents торрент-файл, если все сделано правильно то к его имени добавится расширение added и начнется закачка, а в папке .incompleted появится закачиваемый торрент.

Также можно добавлять торренты через веб-интерфейс, выбирая файл на компьютере или указывая URL-адрес.

Для того, чтобы наш торрент-клиент мог принимать внешние подключения разрешим входящие соединения на порт 51413, для этого добавим в /etc/nat строки:

Обратите внимание, что добавить их нужно перед правилом #Запрещаем входящие извне.

Перезагрузим сервер. В нашем случае (тестовая лаборатория) данный сервер расположен за NAT, войдя в веб-интерфейс роутера можем убедиться, что NAT не помеха, UPnP работает и позволяет принимать внешние подключения.

На этом настройку торрент-клиента можно считать законченной и переходить к следующему этапу.

DLNA-сервер

Что такое DLNA? Это сокращение от Digital Living Network Alliance, под которым скрывается набор стандартов для обмена медиаконтентом для совместимых устройств. DLNA позволяет пользователям легко и прозрачно получать доступ к мультимедийному содержимому сети с любого устройства (телевизор, планшет. ноутбук и т.п.) не задумываясь о технической стороне вопроса, работа сводится к оперированию привычными понятиями: музыка, видео, изображения и выборе необходимого контента из структурированного каталога.

В качестве DLNA-сервера мы будем использовать MediaTomb. Установим пакет:

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

Сразу укажем сетевые интерфейсы на которых будет работать сервис, для этого в файле /etc/default/mediatomb найдем и зададим опцию:

Основные настройки медиасервера хранятся в /etc/mediatomb/config.xml. Настроек немного, сначала включим веб-интерфейс и зададим параметры доступа к нему:

Укажем имя сервера и корневой каталог для медиаконтента:

Включим превью при отображении фильмов:

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

Теперь в сетевом окружении мы можем увидеть значок медиасервера.

Но подключаться к нему еще рано, необходимо создать библиотеки мультимедиа. Для этого зайдем в веб-интерфейс http://ubuntu-home.local:49152 и перейдем к дереву файловой системы. Выбрав папку с мультимедийным контентом можем добавить ее в библиотеку нажав на кнопку «плюс» справа или задать режим регулярного сканирования папки нажав на соседнюю кнопку где плюс изображен в окружении стрелочек.

Для работы с медиасервером можно использовать любой поддерживающий DNLA клиент. Например Windows Media Center, работа с ним очень проста и не вызовет затруднений даже у неподготовленного пользователя. Добавляем библиотеку:

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

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

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

Как видим, в течении всего одного вечера можно создать на базе Ubuntu Server простой и удобный медиасервер, который станет центром вашей домашней сети.

источник