Главная
Главная Руководства FreeBSD › FreeBSD, установка и настройка mediatomb



Автор:

Статья опубликована: 2013-01-06 21:11:30
Последние правки: 2017-02-03 21:37:54

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

Важное дополнение: если вы являетесь счастливым обладателем ЖК TV Sony Bravia KLD-32W654A или аналогичного устройства, то вам понадобится другой медиасервер - Serviio. На данный моомент я считаю именно Serviio лучшим dlna-сервером, работающим под FreeBSD.



Идея поднятия своего медиасервера пришла ко мне после приобретения 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.