Идея поднятия своего медиасервера пришла ко мне после приобретения Playstation 3. Сие чудное устройство было подключено к 42-х дюймовой плазме, прекрасно воспроизводило BluRay и DVD диски, но, к моему огромному сожалению, не обладало возможностями видеть сетевые ресурсы. Была лишь одна лазейка, чтобы смотреть по сети цифровой контент - DLNA медиасервер.
В моей домашней сети уже присутствовал сервер под управлением FreeBSD, так что оставалось лишь найти в портах самого достойного. И после непродолжительных поисков в качестве медиасервера для домашней сети был выбран mediatomb.
-
Условия и исходные данные:
база данных медиасервера будет храниться в MySQL сервере
Интерфейс, на котором будет работать mediatomb: ale0 - карта, которая смотрит в домашнюю сеть, с ip-адресом 192.168.0.3
-
Использованные версии ПО:
# uname -sr FreeBSD 9.1-PRERELEASE
# pkg_info | grep mediatomb mediatomb-0.12.1-8 UPnP AV MediaServer
-
Установка
# cd /usr/ports/net/mediatomb # make install clean
В опциях выбираем:[ ] SQLITE3 sqlite3 support [*] MYSQL MySQL support [*] JS JavaScript (SpiderMonkey) support [*] LIBEXIF libexif support [ ] TAGLIB taglib support [*] FFMPEG ffmpeg metadata extraction support [*] FFMPEGTHUMBNAILER ffmpeg thumbnailer support [*] EXTERNAL_TRANSCODING external transcoding support [*] CURL curl support [*] ID3LIB id3lib support [ ] LIBEXTRACTOR libextractor support [ ] DEBUG debug build
Опции ffmpeg[ ] AACPLUS AAC via libaacplus [ ] ALSA ALSA audio architecture [ ] AMR_NB AMR Narrow Band audio (opencore) [ ] AMR_WB AMR Wide Band audio (opencore) [ ] CELT CELT audio codec [ ] DEBUG Install debug symbols [ ] DIRAC Dirac codec via libdirac [*] FAAC FAAC AAC encoder [ ] FFSERVER Build and install ffserver [*] FREETYPE TrueType font rendering [*] FREI0R Frei0r video plugins [ ] GSM GSM codec support [*] LAME LAME MP3 audio encoder [*] OPENCV OpenCV support [*] OPENJPEG Enhanced JPEG graphics [*] OPTIMIZED_CFLAGS Use extra compiler optimizations [ ] RTMP RTMP protocol via librtmp [*] SCHROEDINGER Dirac codec via libschroedinger [ ] SDL Simple Direct Media Layer [ ] SPEEX Speex audio format [*] THEORA Ogg Theora video codec [ ] VAAPI VAAPI (GPU video acceleration) [ ] VDPAU VDPAU (GPU video acceleration) [*] VORBIS Ogg Vorbis audio codec [ ] VO_AACENC AAC audio encoding via vo-aacenc [ ] VO_AMRWBENC AMR Wide Band encoding via vo-amrwbenc [*] VPX VP8 video codec [ ] X11GRAB Enable x11 grabbing [*] X264 H.264 video codec via x264 [*] XVID Xvid MPEG-4 video codec
Во время установки будут созданы пользователь mediatomb и группа mediatomb
- Первоначальная настройка
/etc/rc.conf:mediatomb_enable="YES"
-
Настройка
/usr/local/etc/mediatomb/config.xml
Блок <server>
Добавляем или меняем блоки и строки внyтри блока <server>:<port>50000</port> <interface>ale0</interface>
port - на этом порту будет работать web-интерфейс mediatomb
interface - тут указываем интерфейс домашней сети<ui enabled="yes"> <accounts enabled="yes" session-timeout="30000"> <account user="user" password="password"/> <items-per-page default="100"> <option>10</option> <option>25</option> <option>50</option> <option>100</option> </items-per-page> </accounts> </ui>
поменять user и password на свои, эти логин-пароль будут использоваться для доступа к управлению через web-интерфейс<name>HomeServer</name>
имя медиасервера как оно будет отображаться у клиентов<storage> <mysql enabled="yes"> <host>localhost</host> <username>mediatomb</username> <password>mediatomb</password> <database>mediatomb</database> </mysql> </storage>
место, где храним данные - MySQL. Имя пользователя, базу данных и пароль задайте сами, также их надо будет завести в MySQL-сервере.<pc-directory upnp-hide="yes"/>
Задаем не показывать PC-Directory клиентам<protocolInfo extend="yes">
для поддержки просмотра с Playstation 3<extended-runtime-options> <ffmpegthumbnailer enabled="yes"> <thumbnail-size>128</thumbnail-size> <seek-percentage>5</seek-percentage> <filmstrip-overlay>yes</filmstrip-overlay> <workaround-bugs>no</workaround-bugs> <image-quality>10</image-quality> </ffmpegthumbnailer> </extended-runtime-options>
показ кадра из фильма при помощи ffmpegthumbnailer. <seek-percentage> задает время в секундах от начала фильма, откуда брать картинку.
Блок <import ...>
Добавляем или меняем строки внутри блока <import ...><filesystem-charset>UTF-8</filesystem-charset> <metadata-charset>UTF-8</metadata-charset> <playlist-charset>UTF-8</playlist-charset>
ищем блок <extension-mimetype ..>
меняем<extension-mimetype ignore-unknown="no">
на<extension-mimetype ignore-unknown="yes">
после чего добавляем в этот блок строки:<map from="ts" to="video/mpeg"/> <map from="mp4" to="video/mpeg"/> <map from="mov" to="video/x-quicktime"/> <map from="mkv" to="video/x-matroska"/> <map from="jpg" to="image/jpeg"/> <map from="jpeg" to="image/jpeg"/>
Блок <transcoding ..>
Разрешаем:<transcoding enabled="yes">
Добавляем в <mimetype-profile-mappings><transcode mimetype="video/x-matroska" using="mencoder-generic"> <transcode mimetype="video/x-quicktime" using="ffmpeg-generic">
- Запуск
# /usr/local/etc/rc.d/mediatomb start
- Web-админка
Зайти можно через браузер, в нашем случае набрав в адресной строке http://192.168.0.3:50000/
После ввода логина и пароля, которые заданы в конфиге, внутри вы найдете две вкладки: Database и Filesystem. Идите на вкладку Filesystem, найдите в дереве директорий ту, где хранится медиаконтент, выберите нужную директорию, справа в верхней части экрана будут два плюсика. Можно просто добавить директорию в базу данных, а можно задать периодическое сканирование этой директории на предмет её изменения.
Я рекомендую поместить директорию для медиафайлов в корневой раздел сервера, а туда уже добавить ссылки на директории с музыкой, фильмами, картинками. Это лучше всего сделать именно так потому, что на устройствах, которые подключаются к медиасерверу, будет показан весь путь до директории, начиная с корневого раздела.
- Разное
При добавлении в конфиге новых строк с <map ...> или <transcode ...> обязательно перезагрузите mediatomb# /usr/local/etc/rc.d/mediatomb restart
после чего зайдите в веб-интерфейс, удалите всё, что есть на вкладке Database и снова добавьте директории на вкладке Filesystem
- Playstation 3
Тут все просто: в меню идете в Видео и если Playstation 3 подключена к домашней сети, то вы увидите значок медиасервера. Далее интерфейс интуитивно понятен. Музыку и картинки найдете в соответствующих главных разделах XMB меню.
- Android
С андроидом немного посложнее, нам понадобятся dlna-клиент и медиапроигрыватель.
В результате непродолжительных экспериментов я остановился на связке Bubble UPNP + MX Player. Обе программы бесплатны и ставятся из Play Market.