mediatomb и thumbnails для видео

fireman10
2010-01-31
2013-05-30
  • fireman10
    fireman10
    2010-01-31

    Прежде всего хотел поблагодарить авторов за данный софт.
    Ну и собственно 2 вопроса. В качестве клиента на данный момент использую xbmc.
    1. У меня ни для одного видеофайла не отображается thumbnail (для аудиофайлов - thumbnail отображается). Что нужно сделать чтобы thumbnail отображался в клиенте? Если да, то можно ли подставить вместо генерируемого изображения - любое другое?
    2. А также, каким образом можно кроме названия файла отображать еще и дополнительную информацию (например описание к видеофайлу)

    <?xml version="1.0" encoding="UTF-8"?>
    <config version="1" xmlns="http://mediatomb.cc/config/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://mediatomb.cc/config/1 http://mediatomb.cc/config/1.xsd">
      <!--
         Read /usr/share/doc/mediatomb-common/README.gz section 6 for more
         information on creating and using config.xml configration files.
        -->
      <server>
        <ui enabled="yes" show-tooltips="yes">
          <accounts enabled="no" session-timeout="30">
            <account user="mediatomb" password="mediatomb"/>
          </accounts>
        </ui>
        <name>Anton laptop media</name>
        <udn>uuid:f2376613-d0d9-4989-9602-f6ad108ea527</udn>
        <home>/home/anton/.mediatomb</home>
        <webroot>/usr/share/mediatomb/web</webroot>
        <storage>
          <sqlite3 enabled="yes">
            <database-file>mediatomb.db</database-file>
          </sqlite3>
          <mysql enabled="no">
            <host>localhost</host>
            <username>mediatomb</username>
            <database>mediatomb</database>
          </mysql>
        </storage>
        <protocolInfo extend="no"/><!-- For PS3 support change to "yes" -->
        <!--
           Uncomment the lines below to get rid of jerky avi playback on the
           DSM320 or to enable subtitles support on the DSM units
        -->
        <!--
        <custom-http-headers>
          <add header="X-User-Agent: redsonic"/>
        </custom-http-headers>
        <manufacturerURL>redsonic.com</manufacturerURL>
        <modelNumber>105</modelNumber>
        -->
        <!-- Uncomment the line below if you have a Telegent TG100 -->
        <!--
           <upnp-string-limit>101</upnp-string-limit>
        -->
        <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>
          </ffmpegthumbnailer>
          <mark-played-items enabled="no" suppress-cds-updates="yes">
            <string mode="prepend">*</string>
          </mark-played-items>
        </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>
            <dvd-script>/usr/share/mediatomb/js/import-dvd.js</dvd-script>
          </virtual-layout>
        </scripting>
        <mappings>
          <extension-mimetype ignore-unknown="no">
            <map from="mp3" to="audio/mpeg"/>
            <map from="ogg" to="application/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="mkv" to="video/x-matroska"/>
            <map from="mka" to="audio/x-matroska"/>
            <!-- Uncomment the line below for PS3 divx support -->
            <!-- <map from="avi" to="video/divx"/> -->
            <!-- Uncomment the line below for D-Link DSM / ZyXEL DMA-1000 -->
            <!-- <map from="avi" to="video/avi"/> -->
          </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="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="application/x-iso9660" as="dvd"/>
            <treat mimetype="application/x-iso9660-image" as="dvd"/>
          </mimetype-contenttype>
        </mappings>
        <online-content>
          <!-- Make sure to setup a transcoding profile for flv -->
          <YouTube enabled="no" refresh="28800" update-at-start="no" purge-after="604800" racy-content="exclude" format="flv" hd="no">
            <favorites user="mediatomb"/>
            <standardfeed feed="most_viewed" time-range="today"/>
            <playlists user="mediatomb"/>
            <uploads user="mediatomb"/>
            <standardfeed feed="recently_featured" time-range="today"/>
          </YouTube>
          <Weborama enabled="no" refresh="28800" update-at-start="no">
            <playlist name="Active" type="playlist" mood="active"/>
            <playlist name="Metal" type="playlist">
              <filter>
                <genres>metal</genres>
              </filter>
            </playlist>
          </Weborama>
          <AppleTrailers enabled="no" refresh="43200" update-at-start="no" resolution="640"/>
        </online-content>
      </import>
      <transcoding enabled="no">
        <mimetype-profile-mappings>
          <transcode mimetype="video/x-msvideo" using="vlcmpeg"/>
          <transcode mimetype="video/x-flv" using="vlcmpeg"/>
          <transcode mimetype="application/ogg" using="vlcmpeg"/>
          <transcode mimetype="application/ogg" using="oggflac2raw"/>
          <transcode mimetype="audio/x-flac" using="oggflac2raw"/>
        </mimetype-profile-mappings>
        <profiles>
          <profile name="oggflac2raw" enabled="no" type="external">
            <mimetype>audio/L16</mimetype>
            <accept-url>no</accept-url>
            <first-resource>yes</first-resource>
            <accept-ogg-theora>no</accept-ogg-theora>
            <agent command="ogg123" arguments="-d raw -o byteorder:big -f %out %in"/>
            <buffer size="1048576" chunk-size="131072" fill-size="262144"/>
          </profile>
          <profile name="vlcmpeg" enabled="yes" type="external">
            <mimetype>video/mpeg</mimetype>
            <accept-url>yes</accept-url>
            <first-resource>yes</first-resource>
            <accept-ogg-theora>yes</accept-ogg-theora>
            <thumbnail>yes</thumbnail>
            <agent command="vlc" arguments="-I dummy %in --sout #transcode{venc=ffmpeg,vcodec=mp2v,vb=1096,fps=25,aenc=ffmpeg,acodec=mpga,ab=192,samplerate=44100,channels=2}:standard{access=file,mux=ps,dst=%out} vlc:quit"/>
            <buffer size="14400000" chunk-size="512000" fill-size="120000"/>
          </profile>
        </profiles>
      </transcoding>
    
     
  • Jin
    Jin
    2010-01-31

    1. У меня ни для одного видеофайла не отображается thumbnail (для аудиофайлов - thumbnail отображается). Что нужно сделать чтобы thumbnail отображался в клиенте?

    А какая версия MediaTomb и какой клиент? Возможно данному проигрывателю нехватает опции:

    <protocolInfo extend="yes"/>
    

    Если да, то можно ли подставить вместо генерируемого изображения - любое другое?

    К сожалению пока нет, но планы добавить такую опцию существуют…

    2. А также, каким образом можно кроме названия файла отображать еще и дополнительную информацию (например описание к видеофайлу)

    К сожалению, в отличии от скажем, мп3 файлов, видео файлы не несут в себе практически никакой метаинформации. Я давно раздумываю, как подойти к этому ворпосу… один из вариантов - искать подходящие метафайлы, например в XML, и брать информацию оттуда. Может есть другие предложения?

     
  • fireman10
    fireman10
    2010-01-31

    А какая версия MediaTomb и какой клиент? Возможно данному проигрывателю нехватает опции:
    Code:
    <protocolInfo extend="yes"/>

    MediaTomb UPnP Server version 0.12.0 - http://mediatomb.cc/
    ОС: Linux  2.6.31-18-generic #55-Ubuntu SMP Fri Jan 8 14:55:26 UTC 2010 i686 GNU/Linux

    В качестве клиента - XBMC.

    Опцию добавил после

    <webroot>/usr/share/mediatomb/web</webroot>

    Увы, к сожалению не помогло. ffmpegthumbnail установлен. Thumbnails по прежнему не видятся.

    К сожалению, в отличии от скажем, мп3 файлов, видео файлы не несут в себе практически никакой метаинформации. Я давно раздумываю, как подойти к этому ворпосу… один из вариантов - искать подходящие метафайлы, например в XML, и брать информацию оттуда. Может есть другие предложения?

    У меня есть 2 варианта решения и пару ссылок в конце относительно полей для заполнения.
    1. Парсить название видеофайла и брать метаинформацию с KinoPoisk, IMDB или подобного ресурса.
    2. Предоставить пользователю самому заносить информацию через веб-интерфейс и складывать в XML-файлик с таким же названием как и видеофайл.
    Если их скомбинировать - так вообще будет замечательно. Т.е. вначале брать метаданные с какого-нить ресурса, а если не найдено или не полностью устраивает, то предоставить пользователю вносить эту инфу самостоятельно.

    http://dublincore.org/  - создание единого стандарта под любые данные
    http://microformats.org/wiki/media-metadata-examples#Video
    http://microformats.org/wiki/video-metadata-model

     
  • Jin
    Jin
    2010-01-31

    В качестве клиента - XBMC.

    Возможно загвоздка именно тут - хотя это очень хороший client, мне известно что у пользователей были проблемы с video картинками, он их не показывал. Мы проверили, что MediaTomb давал информацию о картинках, но XBMC все же не показывал их, так что этот вопрос скорее к ним…

    У меня есть 2 варианта решения и пару ссылок в конце относительно полей для заполнения.
    1. Парсить название видеофайла и брать метаинформацию с KinoPoisk, IMDB или подобного ресурса.

    Ну тут первая проблема: скорость…. выискивать инфу к каждому файлу при импорте сильно затянет добавление, скорее нужно будет сначала добавить "голые" файлы, а потом на заднем плане постепенно качать информацию. В принципе можно… насчет IMDB не уверен, у них есть какая то библиотека, которой можно воспользоваться, но у нее какая то "нехорошая" лицензия :) Про КиноПоиск ничего не знаю, я посмотрю…

    Ну а в первую очередь это правда зависит от наличии библиотеки, так как писать что то самому, чтобы парсить онлайн ресур, мне как то не хочется, это довольно трудоемкое дело…

    2. Предоставить пользователю самому заносить информацию через веб-интерфейс и складывать в XML-файлик с таким же названием как и видеофайл.

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

    Теоретически можно скомпилить МТ со специальной опцией для libjs, позволяющей не только парсить XML но и читать файлы с диска. Таким образом уже сейчас можно было бы реализовать подобную функциональность на пользовательском уровне через import.js

    Альтернативный вариант: придумать свой плэйлист формат, подогнать под него парсер в playlists.js и импортировать видео файлы таким образом…