Дек 262011
 

Купил я телевизор Samsung UE40D7000, рад!
Сразу захотел подключить к нему клавиатуру по USB, но клавиатура не заработала, скорее всего отключили в биосе.
Следующим моим шагом было научить телевизор брать фильмы, музыку или картинки из локальной сети. Под windows труда не составило, на офф. сайте есть программа allshare с помощью которой можно разшарить папки на системе а вот под Linux ничего нету, так сказал инженер из тех-поддержки samsunga.
Я начал искать вариант под Linux ибо виндовс вариант меня не устраивал.
Много литературы прочитал и выбор мой пал на сервер DLNA mediatomb.
Приступим.
Ставим установим пакет.

serv0 ~ # emerge mediatomb -pv
These are the packages that would be merged, in order:
Calculating dependencies... done!
[ebuild   R    ] net-misc/mediatomb-0.12.1  USE="exif ffmpeg javascript mp4 taglib -debug -inotify -lastfm -libextractor -mysql -thumbnail" 0 kB
Total: 1 package (1 reinstall), Size of downloads: 0 kB
serv0 ~ #

Теперь отредактируем конфиг.
Добавим такое изменение,eth0 это на каком интерфейсе слушаться mediatomb IP адрес на котором он будет.

# nano /etc/conf.d/mediatomb
MEDIATOMB_OPTIONS="eth0"
NO_START="no"

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

# nano /etc/crontab
@reboot         root /usr/bin/sleep 20 && /etc/init.d/mediatomb restart

Так же можно создать базу в mysql для mediatomb.
Откроем в нашем фривале порт для доступа к этому серверу.

$IPT -A INPUT -p tcp --dport 49152 -j ACCEPT
$IPT -A OUTPUT -p tcp --source-port 49152 -j ACCEPT

Далее создам нужную конфигурацию.
/etc/mediatomb/config.xml

<?xml version="1.0" encoding="UTF-8"?>
<config version="2" xmlns="http://mediatomb.cc/config/2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://mediatomb.cc/config/2 http://mediatomb.cc/config/2.xsd">
  <server>
    <ui enabled="yes" show-tooltips="yes">
      <accounts enabled="no" session-timeout="30">
        <account user="mediatomb" password="mediatomb"/>
      </accounts>
    </ui>
    <name>MediaTomb</name>
    <udn>uuid:27dd7443-adbc-4d94-bccf-d050aca947b5</udn>
    <home>/var/lib/mediatomb</home>
    <webroot>/usr/share/mediatomb/web</webroot>
    <storage>
      <sqlite3 enabled="yes">
        <database-file>mediatomb.db</database-file>
      </sqlite3>
      <mysql enabled="no">
        <host>host</host>
        <database>database</database>
        <username>username</username>
        <password>password</password>
      </mysql>
    </storage>
    <custom-http-headers>
  <add header="transferMode.dlna.org: Streaming"/>
  <add header="contentFeatures.dlna.org: DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01700000000000000000000000000000"/>
</custom-http-headers>
    <protocolInfo extend="yes"/>
    <pc-directory upnp-hide="no"/>
    <extended-runtime-options>
      <ffmpegthumbnailer enabled="no">
        <thumbnail-size>160</thumbnail-size>
        <seek-percentage>10</seek-percentage>
        <filmstrip-overlay>no</filmstrip-overlay>
        <workaround-bugs>no</workaround-bugs>
        <image-quality>8</image-quality>
      </ffmpegthumbnailer>
      <mark-played-items enabled="no" suppress-cds-updates="yes">
        <string mode="prepend">*</string>
        <mark>
          <content>video</content>
        </mark>
      </mark-played-items>
      <lastfm enabled="no">
        <username>username</username>
        <password>password</password>
      </lastfm>
    </extended-runtime-options>
  </server>
  <import hidden-files="no">
    <scripting script-charset="UTF-8">
      <common-script>/usr/share/mediatomb/js/common.js</common-script>
      <playlist-script>/usr/share/mediatomb/js/playlists.js</playlist-script>
      <virtual-layout type="builtin">
        <import-script>/usr/share/mediatomb/js/import.js</import-script>
      </virtual-layout>
    </scripting>
    <mappings>
      <extension-mimetype ignore-unknown="no">
        <map from="mp3" to="audio/mpeg"/>
        <map from="ogx" to="application/ogg"/>
        <map from="ogv" to="video/ogg"/>
        <map from="oga" to="audio/ogg"/>
        <map from="ogg" to="audio/ogg"/>
        <map from="ogm" to="video/ogg"/>
        <map from="asf" to="video/x-ms-asf"/>
        <map from="asx" to="video/x-ms-asf"/>
        <map from="wma" to="audio/x-ms-wma"/>
        <map from="wax" to="audio/x-ms-wax"/>
        <map from="wmv" to="video/x-ms-wmv"/>
        <map from="wvx" to="video/x-ms-wvx"/>
        <map from="wm" to="video/x-ms-wm"/>
        <map from="wmx" to="video/x-ms-wmx"/>
        <map from="m3u" to="audio/x-mpegurl"/>
        <map from="pls" to="audio/x-scpls"/>
        <map from="flv" to="video/x-flv"/>
        <map from="mka" to="audio/x-matroska"/>
        <map from="avi" to="video/x-msvideo"/>
        <map from="m2ts" to="video/avc"/>
        <map from="cr2" to="image/raw"/>
        <map from="nef" to="image/raw"/>
        <map from="ts" to="video/mpeg"/>
        <map from="divx" to="video/mpeg"/>
        <map from="mp4" to="video/MP4V-ES"/>
        <map from="mkv" to="video/x-mkv"/>
      </extension-mimetype>
      <mimetype-upnpclass>
        <map from="audio/*" to="object.item.audioItem.musicTrack"/>
        <map from="video/*" to="object.item.videoItem"/>
        <map from="image/*" to="object.item.imageItem"/>
      </mimetype-upnpclass>
      <mimetype-contenttype>
        <treat mimetype="audio/mpeg" as="mp3"/>
        <treat mimetype="application/ogg" as="ogg"/>
        <treat mimetype="video/ogg" as="ogg"/>
        <treat mimetype="audio/ogg" as="ogg"/>
        <treat mimetype="audio/x-flac" as="flac"/>
        <treat mimetype="image/jpeg" as="jpg"/>
        <treat mimetype="audio/x-mpegurl" as="playlist"/>
        <treat mimetype="audio/x-scpls" as="playlist"/>
        <treat mimetype="audio/x-wav" as="pcm"/>
        <treat mimetype="audio/L16" as="pcm"/>
        <treat mimetype="video/x-msvideo" as="avi"/>
        <treat mimetype="video/mp4" as="mp4"/>
        <treat mimetype="audio/mp4" as="mp4"/>
        <treat mimetype="video/divx" as="avi"/>
      </mimetype-contenttype>
    </mappings>
    <online-content>
      <YouTube enabled="no" refresh="28800" update-at-start="yes" purge-after="604800" racy-content="exclude" format="mp4" hd="no">
        <favorites user="NationalGeographic"/>
        <playlists user="PlayStation"/>
        <uploads user="Google"/>
        <standardfeed feed="most_viewed" time-range="today"/>
        <standardfeed feed="recently_featured" time-range="today"/>
      </YouTube>
    </online-content>
  </import>
  <transcoding enabled="no">
    <mimetype-profile-mappings>
      <transcode mimetype="audio/ogg" using="audio2pcm"/>
      <transcode mimetype="audio/x-flac" using="audio2pcm"/>
      <transcode mimetype="video/ogg" using="video2mpeg"/>
      <transcode mimetype="video/x-flv" using="video2mpeg"/>
    </mimetype-profile-mappings>
    <profiles>
      <profile name="audio2pcm" enabled="yes" type="external">
        <mimetype>audio/L16</mimetype>
        <accept-url>no</accept-url>
        <first-resource>yes</first-resource>
        <hide-original-resource>yes</hide-original-resource>
        <accept-ogg-theora>no</accept-ogg-theora>
        <sample-frequency>44100</sample-frequency>
        <audio-channels>2</audio-channels>
        <agent command="ffmpeg" arguments="-i %in -acodec pcm_s16be -ab 192k -ar 44100 -ac 2 -f s16be -y %out"/>
        <buffer size="1048576" chunk-size="131072" fill-size="262144"/>
      </profile>
      <profile name="video2mpeg" enabled="yes" type="external">
        <mimetype>video/mpeg</mimetype>
        <accept-url>no</accept-url>
        <first-resource>yes</first-resource>
        <hide-original-resource>yes</hide-original-resource>
        <accept-ogg-theora>yes</accept-ogg-theora>
        <sample-frequency>48000</sample-frequency>
        <audio-channels>2</audio-channels>
        <agent command="ffmpeg" arguments="-i %in -vcodec mpeg2video -b 4096k -r 25 -acodec mp2 -ab 192k -ar 48000 -ac 2 -async 1 -f dvd -threads 2 -y %out"/>
        <buffer size="10485760" chunk-size="262144" fill-size="524288"/>
      </profile>
    </profiles>
  </transcoding>
</config>

Теперь осталось только запустить наш сервер.

/etc/init.d/mediatomb start

Заходим.
http://localhost:49152/ — веб-интерфейс управления библиотекой.
Номер порта задаётся в конфиг-файле /etc/conf.d/mediatomb.

Если телевизор не в какую не хочет показывать фильмы формата mkv, ( у меня писалось, что формат не поддерживается) тогда здесь дело в mimetype.
В config.xml строку.

<map from="mkv" to="audio/x-matroska"/>

надо заменить на строку.

<map from="mkv" to="audio/x-mkv"/>

Перезапустим сервер наш

/etc/init.d/mediatomb restart

После этого обязательно пересоздать базу в веб-интерфейсе (удалить все, что на вкладке database и заново добавить директории на вкладке filesystem).

  15 комментариев to “Настройка сервера DLNA mediatomb для samsung D7000”

  1. Большое спасибо за статью, Неделю бьюсь, а заставить телевизор показывать с Mediatomb не мог, пока твой конфиг не скопировалхотя в чем отличие так и не понял

  2. скорее всего в конфиге отличие! хех
    У тебя что за модель телика?

  3. Хочется он лайн радио через него пустить, но ума не хватает

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

  5. А кстати вот тебе и как можно реализовать прослушивания онлайн радио потоков.
    http://likeunix.ru/freebsd-icecast2/

  6. Спасибо, тоже долго мучалась с выбором и настройкой dnla, помогла ваша статейка.

  7. Дружище респект за статейку.!
    Уже пол дня убил по настройке mediatomb .

  8. Огромное спасибо за статью! Может подскажешь, есть ли возможность добавлять в данную программу ftp директории?

  9. Всё, нашел. Решил проблему с помощью curlftpfs :)

  10. Спасибо, подставил ваш конфиг, все завелось сразу.
    А то тоже намучался, пришлось ставить как дополнительную систему виндузз.
    Для самсунгов они только под виндуз софт на офф сайте реализуют, вообщем спасибо!!!

  11. Извените,у меня просто уже нет сил бороться,расскажите мне плиз,дурачку,почемубы у меня телевизор видит устройство,а вот видео в нём не видит,говорит «видеофаилы на подключённом устройстве не найдены»,за ранее благодарен

  12. — ошибочка audio заменить на video.

 Leave a Reply

(required)

(required)

44 Запросов к базе. 0,541 Генерации страницы, 36MB Использование памяти.
Вы зашли с IP: 54.196.47.145