MiniDLNA на Ubuntu Server

MiniDLNAпростой DLNA сервер без транскодирования «на лету», так что ждать чуда не стоит и показывать Ваш смарт телевизор или приставка будет только те файлы, которые сможет осилить самостоятельно. Но зато бюджетную приставку к ТВ можно сделать из raspberry pi (обзор этого мини ПК здесь.) или его аналогов, к тому же нагрузка на сервер будет меньше, а значит и тех. требования для сервера не большие.

Устанавливаем MiniDLNA на Ubuntu Server как всегда простой командой , но сначала добавим репозиторий:
sudo add-apt-repository ppa:stedy6/stedy-minidna
видим:
ppa for unofficial minidlna
More info: https://launchpad.net/~stedy6/+archive/ubuntu/stedy-minidna
Press [ENTER] to continue or ctrl-c to cancel adding it
gpg: keyring `/tmp/tmpzlov5kvw/secring.gpg' created
gpg: keyring `/tmp/tmpzlov5kvw/pubring.gpg' created
gpg: requesting key 661F5D0B from hkp server keyserver.ubuntu.com
gpg: /tmp/tmpzlov5kvw/trustdb.gpg: trustdb created
gpg: key 661F5D0B: public key "Launchpad PPA for stedy" imported
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
OK

Продолжаем:
sudo apt-get update
sudo apt-get install minidlna

На этом установка завершена. Увидим что-то вроде:
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Следующий пакет устанавливался автоматически и больше не требуется:
python-pyinotify
Для его удаления используйте «apt-get autoremove».
НОВЫЕ пакеты, которые будут установлены:
minidlna
обновлено 0, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 286 пакетов не обновлено.
Необходимо скачать 130 kБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 482 kB.
Получено:1 http://ru.archive.ubuntu.com/ubuntu/ trusty-backports/universe minidlna amd64 1.1.2+dfsg-1~ubuntu14.04.1 [130 kB]
Получено 130 kБ за 0с (419 kБ/c)
Выбор ранее не выбранного пакета minidlna.
(Чтение базы данных … на данный момент установлен 76361 файл и каталог.)
Preparing to unpack …/minidlna_1.1.2+dfsg-1~ubuntu14.04.1_amd64.deb ...
Unpacking minidlna (1.1.2+dfsg-1~ubuntu14.04.1) ...
Processing triggers for ureadahead (0.100.0-16) ...
Processing triggers for man-db (2.6.7.1-1ubuntu1) ...
Настраивается пакет minidlna (1.1.2+dfsg-1~ubuntu14.04.1) …
* Starting DLNA/UPnP-AV media server minidlna [ OK ]
Processing triggers for ureadahead (0.100.0-16) ...

Дальше самое интересное — редактирование конфигурационного файла /etc/minidlna.conf , но прежде сделаем его резервную копию:
sudo cp /etc/minidlna.conf /etc/minidlna.conf-0

и теперь переходим к редактированию:
sudo nano /etc/minidlna.conf

Доводим конфиг до следующего состояния(в некоторых ключевых местах я сделал пояснения):
# This is the configuration file for the MiniDLNA daemon, a DLNA/UPnP-AV media
# server.
#
# Unless otherwise noted, the commented out options show their default value.
#
# On Debian, you can also refer to the minidlna.conf(5) man page for
# documentation about this file.

# Specify the user name or uid to run as.
#user=minidlna

# Path to the directory you want scanned for media files.
#
# This option can be specified more than once if you want multiple directories
# scanned.
#
# If you want to restrict a media_dir to a specific content type, you can
# prepend the directory name with a letter representing the type (A, P or V),
# followed by a comma, as so:
# * "A" for audio (eg. media_dir=A,/var/lib/minidlna/music)
# * "P" for pictures (eg. media_dir=P,/var/lib/minidlna/pictures)
# * "V" for video (eg. media_dir=V,/var/lib/minidlna/videos)
#media_dir=/var/lib/minidlna
# В папке /var/lib/minidlna/videos НЕ хранятся видео файлы, в эту директорию
# будут созданы символические ссылки на директории с видео
# Для аудио надо использовать media_dir=A, для изображений media_dir=P.
media_dir=V,/var/lib/minidlna/videos

# Path to the directory that should hold the database and album art cache.
# указываем директорию с базой даннх
db_dir=/var/cache/minidlna

# Path to the directory that should hold the log file.
# место, куда складывать лог
log_dir=/var/log

# Type and minimum level of importance of messages to be logged.
#
# The types are "artwork", "database", "general", "http", "inotify",
# "metadata", "scanner", "ssdp" and "tivo".
#
# The levels are "off", "fatal", "error", "warn", "info" or "debug".
# "off" turns of logging entirely, "fatal" is the highest level of importance
# and "debug" the lowest.
#
# The types are comma-separated, followed by an equal sign ("="), followed by a
# level that applies to the preceding types. This can be repeated, separating
# each of these constructs with a comma.
#
# The default is to log all types of messages at the "warn" level.
#log_level=general,artwork,database,inotify,scanner,metadata,http,ssdp,tivo=warn

# Use a different container as the root of the directory tree presented to
# clients. The possible values are:
# * "." - standard container
# * "B" - "Browse Directory"
# * "M" - "Music"
# * "P" - "Pictures"
# * "V" - "Video"
# If you specify "B" and the client device is audio-only then "Music/Folders"
# will be used as root.
#root_container=.

# Network interface(s) to bind to (e.g. eth0), comma delimited.
# This option can be specified more than once.
# так как интерфейсов в сервере у меня не один, а некоторые смотрять наружу,
# то указываю один конкретный интерфейс, смотрящий в домашнюю сеть
network_interface=eth1

# IPv4 address to listen on (e.g. 192.0.2.1/24).
# If omitted, the mask defaults to 24. The IPs are added to those determined
# from the network_interface option above.
# This option can be specified more than once.
#listening_ip=

# Port number for HTTP traffic (descriptions, SOAP, media transfer).
# This option is mandatory (or it must be specified on the command-line using
# "-p").
port=8200

# URL presented to clients (e.g. http://example.com:80).
#presentation_url=/

# Name that the DLNA server presents to clients.
# Defaults to "hostname: username".
# указываю понятное для меня имя dlna сервера
friendly_name=MiniDLNA

# Serial number the server reports to clients.
# Defaults to 00000000.
serial=681019810597110

# Model name the server reports to clients.
#model_name=Windows Media Connect compatible (MiniDLNA)

# Model number the server reports to clients.
# Defaults to the version number of minidlna.
#model_number=

# Automatic discovery of new files in the media_dir directory.
# автоматический поиск новых файлов (По умолчанию yes)
#inotify=yes

# List of file names to look for when searching for album art.
# Names should be delimited with a forward slash ("/").
# This option can be specified more than once.
album_art_names=Cover.jpg/cover.jpg/AlbumArtSmall.jpg/albumartsmall.jpg
album_art_names=AlbumArt.jpg/albumart.jpg/Album.jpg/album.jpg
album_art_names=Folder.jpg/folder.jpg/Thumb.jpg/thumb.jpg

# Strictly adhere to DLNA standards.
# This allows server-side downscaling of very large JPEG images, which may
# decrease JPEG serving performance on (at least) Sony DLNA products.
#strict_dlna=no

# Support for streaming .jpg and .mp3 files to a TiVo supporting HMO.
#enable_tivo=no

# Notify interval, in seconds.
#notify_interval=895

# Path to the MiniSSDPd socket, for MiniSSDPd support.
#minissdpdsocket=/run/minissdpd.sock

Дальше создаю указанные в конфиге директории и назначаю на них нужные права:
sudo mkdir -p /var/lib/minidlna/videos
Если создавали для аудио и изображений, то не забудьте создать /var/lib/minidlna/music и /var/lib/minidlna/pictures.

Дальше:
sudo chown -R minidlna:minidlna /var/lib/minidlna
Директория для базы данных /var/cache/minidlna у меня создалась при установке minidlna, но если у Вас её не оказалось, то:
sudo mkdir -p /var/cache/minidlna
sudo chown minidlna:minidlna /var/cache/minidlna

После этого создаём символические ссылки, про которые мы говорили выше. Если коротко, то допустим видео у нас по факту храниться в нескольких директориях /путь/к/директории/с/видео1 и /путь/к/директории/с/видео2, а симвоическими ссылками мы сделаем как-будто они у нас лежат в /var/lib/minidlna/videos/видео1 и /var/lib/minidlna/videos/видео2. Так навигация будет удобнее.
Итак создаём ссылки (директории, конечно же, указывайте свои):
sudo ln -s /тут/директория/с/видео/файлами/1 /var/lib/minidlna/videos/video01
sudo ln -s /тут/директория/с/видео/файлами/2 /var/lib/minidlna/videos/video02

И последнее — перезапуск сервиса minidlna:
sudo service minidlna restart

Теперь на телевизоре с поддержкой DLNA подключенном к домашней сети или на отдельной приставке к ТВ можно выбрать новый источник сигнала под названием MiniDLNA (это имя мы указывали в параметре «friendly_name» конфигурационного файла /etc/minidlna.conf)

Всё вышеописанное тестировалось на:
Ubuntu Server 14.04.2 LTS
$ minidlnad -V
Version 1.1.2

Кстати теперь можно посетить http://ip-адрес-вашего-сервера:8200/ и посмотреть «MiniDLNA status», где будут указаны подключённые клиенты и количество файлов в библиотеке.
Дополнение:
Не забывайте про доступ к директориям и файлам. Если что-то не работает, то попробуйте:
sudo chmod -R 0777 /директория/с/файлами/
Ещё одна из причин, почему Ваш ТВ не показывает какие-то файлы (а какие-то показывает) — это просто ТВ их не поддерживает.

Добавить комментарий