Hi everyone,

I'm sorry my english.

After a lot of days trying see my movies with subtitles I finally can put Chromecast to work using mediatomb (using Avia). Please use it and help me to improve it.

I use Ubuntu 13.10.

To work yo need install (compile) the last version of FFMPEG. (https://trac.ffmpeg.org/wiki/UbuntuCompilationGuide)

Create the file "mediatomb-ceac13-transcoder" in /usr/local/bin/ and put this content:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#!/bin/bash

video=$1
legenda=""
comLegenda=0
#Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
subtitleStyle="Default,Arial,20,65535,65535,&H0,&H0,0,0,0,1,1,0,2,10,10,10,0,0"

#Levar em conta que as extensões podem estar maiusculas
IFS=$(echo -e "\t\n")
for tmpfile in $(echo $video | sed 's/....$/*/')*; do
    filename=$(basename "$tmpfile")
    extension="${filename##*.}"
    echo $extension
    if [ "$extension" == "ass" ]; then
        echo 'Legenda ASS encontrada'
        legenda=$(echo $video | sed 's/...$/ass/')
        comLegenda=1
    elif [ "$extension" == "srt" ]; then
        echo 'Legenda SRT encontrada'
        legenda=$(echo $video | sed 's/...$/srt/')
        comLegenda=1
    elif [ "$extension" == "ssa" ]; then
        echo 'Legenda SSA encontrada'
        legenda=$(echo $video | sed 's/...$/ssa/')
        comLegenda=1
    elif [ "$extension" == "sub" ]; then
        echo 'Legenda SubRip encontrada'
        legenda=$(echo $video | sed 's/...$/sub/')
        comLegenda=1
    fi

done

if [ $comLegenda == 1 ]; then
    encoding=$(file -bi "$legenda" | sed -e 's/.*[ ]charset=//')
    encoding=`echo "$encoding" | tr [:lower:] [:upper:]`

    ffmpeg -y -sub_charenc "$encoding" -i "$legenda" "/tmp/legenda.ass"
    sed -i '/Style: /c\Style: '$subtitleStyle'' /tmp/legenda.ass
    exec ffmpeg -i "$video" -y -c:v libvpx -b:v 5M -crf 10 -c:a libvorbis -cpu-used 16 -threads 8 -f webm -vf subtitles="/tmp/legenda.ass" -map 0 -map -0:s "$2"

elif [ ${video##*.} == webm ]; then
    exec ffmpeg -i "$video" -y -vcodec copy -acodec copy -f webm "$2"

else
    exec ffmpeg -i "$video" -y -c:v libvpx -b:v 5M -crf 10 -c:a libvorbis -cpu-used 16 -threads 8 -f webm "$2"
fi

reset
exit

Don't forget the execution permission (chmod +x mediatomb-ceac13-transcoder)

Change the config.xml in /home/your_profile/.mediatomb/ to:
<?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:61449535-e4be-4306-b79d-1815fb5f30bd</udn>
    <home>/home/ceac13/.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"/>
    <extended-runtime-options>
        <ffmpegthumbnailer enabled="no">
            <thumbnail-size>128</thumbnail-size>
            <seek-percentage>5</seek-percentage>
            <filmstrip-overlay>yes</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>
    </extended-runtime-options>
    </server>
    <import hidden-files="no">
    <scripting script-charset="UTF-8">
        <virtual-layout type="builtin"/>
    </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="mkv" to="video/x-matroska"/>
            <map from="mka" to="audio/x-matroska"/>
        </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"/>
            <map from="application/ogg" to="object.item.audioItem.musicTrack"/>
        </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"/>
            <treat mimetype="video/x-matroska" as="mkv"/>
            <treat mimetype="audio/x-matroska" as="mka"/>
        </mimetype-contenttype>
    </mappings>
    <online-content>
        <YouTube enabled="no" refresh="28800" update-at-start="no" purge-after="604800" racy-content="exclude" format="mp4" 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>
    </online-content>
    </import>
    <transcoding enabled="yes">
    <mimetype-profile-mappings>
        <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"/>
        <transcode mimetype="video/mp4" using="ffmpeg-sub"/>
        <transcode mimetype="video/x-msvideo" using="ffmpeg-sub"/>
        <transcode mimetype="video/ogg" using="ffmpeg-sub"/>
        <transcode mimetype="video/x-ms-asf" using="ffmpeg-sub"/>
        <transcode mimetype="video/x-ms-wmv" using="ffmpeg-sub"/>
        <transcode mimetype="video/x-ms-wvx" using="ffmpeg-sub"/>
        <transcode mimetype="video/x-ms-wm" using="ffmpeg-sub"/>
        <transcode mimetype="video/x-flv" using="ffmpeg-sub"/>
        <transcode mimetype="video/x-matroska" using="ffmpeg-sub"/>
    </mimetype-profile-mappings>
    <profiles>
        <profile name="ffmpeg-sub" enabled="yes" type="external">
            <mimetype>video/webm</mimetype>
            <accept-url>yes</accept-url>
            <first-resource>yes</first-resource>
            <accept-ogg-theora>yes</accept-ogg-theora>
        <agent command="mediatomb-ceac13-transcoder" can-seek="yes" arguments='%in %out'/>
            <buffer size="147483648" chunk-size="512000" fill-size="2048000"/>
        </profile>
    </profiles>
    </transcoding>
</config>

The script convert your videos to webm.
I don't know how use seek in Mediatomb.