mediatomb 0.12.1 で ffmpeg を使ってトランスコード

最後にトランスコードしてみる。
config.xml ファイルには既にトランスコードする為の記述があるけど、これは vlc を使ってる。自分のシステムには vlc 入ってないし入れるのも面倒。なので、先日インストールした ffmpeg を使ってトランスコードするように変更をした。やってることは Debian のシステムで前にやったことと同じ。


まずは config.xml の修正。最後のトランスコードの部分(vlcmpeg のプロファイルの部分)を変更。

  <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"/>
    </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>
        <agent command="/usr/local/bin/mediatomb-transcode-video" arguments="%in %out"/>
        <buffer size="14400000" chunk-size="512000" fill-size="120000"/>
      </profile>
    </profiles>
  </transcoding>


で、トランスコードで使うスクリプトを /usr/local/bin に作る。

[paraches@localhost mediatomb-0.12.1]$ sudo vi /usr/local/bin/mediatomb-transcode-video
[paraches@localhost mediatomb-0.12.1]$ sudo chmod +x /usr/local/bin/mediatomb-transcode-video 
[paraches@localhost bin]$ cat mediatomb-transcode-video 
#!/bin/bash

FFMPEG_PATH="/usr/local/bin/ffmpeg"
INPUT="$1"
OUTPUT="$2"
VIDEO_CODEC="mpeg2video"
VIDEO_BITRATE="1024k"
VIDEO_FRAMERATE="25"
AUDIO_CODEC="mp2"
AUDIO_BITRATE="128k"
AUDIO_SAMPLERATE="44100"
AUDIO_CHANNELS="2"
FORMAT="dvd"

exec "${FFMPEG_PATH}" -i "${INPUT}" -vcodec ${VIDEO_CODEC} -b ${VIDEO_BITRATE} \
-r ${VIDEO_FRAMERATE} -acodec ${AUDIO_CODEC} -ab ${AUDIO_BITRATE} -ar ${AUDIO_SAMPLERATE} \
-ac ${AUDIO_CHANNELS} -f ${FORMAT} - > "${OUTPUT}"
[paraches@localhost bin]$ 


これで mediatomb を再起動すれば PS3 で flv も見られるようになる。
後は同じ要領で他のフォーマットも増やしていけば良い。
ただ、トランスコードだと早送りや巻き戻し、□ボタンのシーンサーチ?が使えないのがちょっと残念。

とりあえず、これでメディアサーバー関係は全部インストール終わったかな?



2012/12/1 Updated : CenOS 6.3 で久しぶりに ffmpeg と Mediatomb で環境を作ってみようとしたら色々と面倒が増えてたので、動くようになるまでの簡単なメモを残しておきました。