まずは必要なものをインストール

libexif と libexif-devel のインストール
libexif のページ

[paraches@localhost ~]$ sudo yum install libexif, libexif-devel

yum でさっくり終了。


cmake のインストール
cmake のページ
cmake は taglib をビルドするのに使用する。
標準のリポジトリにないので、前回設定した rpmforge からインストールする。

[paraches@localhost ~]$ sudo yum install cmake --enablerepo=rpmforge


taglib のインストール
taglib のページ?)
ソースコードは git でダウンロード。

[paraches@localhost myTest]$ git clone git://github.com/taglib/taglib.git

cmake する!

[paraches@localhost myTest]$ cd taglib/
[paraches@localhost taglib]$ cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_RELEASE_TYPE=Release -DWITH_MP4=ON -DWITH_ASF=ON .
<省略>
CMake Error at CMakeLists.txt:75 (file):
  file does not recognize sub-command COPY


-- Configuring incomplete, errors occurred!
[paraches@localhost taglib]$ 

エラー!


正直、CMakeLists.txt を見ても良くわからなかった。
でも、なんとなくドキュメントのコピーしてる所だな〜と思ったので、思い切ってコメントアウト
こんな感じに。

#file(COPY doc/taglib.png DESTINATION doc)


で、再度挑戦。

[paraches@localhost taglib]$ cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_RELEASE_TYPE=Release -DWITH_MP4=ON -DWITH_ASF=ON .
-- Ensure you cppunit installed version is at least 1.12.0
-- Configuring done
-- Generating done
-- Build files have been written to: /home/paraches/myTest/taglib
[paraches@localhost taglib]$ 

無事終了!


後は make & make install する。

[paraches@localhost taglib]$ make
[paraches@localhost taglib]$ sudo make install

インストール終了!


2011/5/5 Updated : cmake した時のエラーの原因は file コマンドの COPY だった。この機能は cmake 2.8 で使えるようになったみたいなのだけど、今回 rpmforge から yum install でインストールされたのは cmake 2.6.4 だった。なので file COPY が使えなくてエラーに…。

ffmpegthumbnailer のインストール

ffmpegthumbnailer のページ
ここからソースコードをダウンロードして、展開& configure する。

[paraches@localhost myTest]$ wget http://ffmpegthumbnailer.googlecode.com/files/ffmpegthumbnailer-2.0.6.tar.gz
[paraches@localhost myTest]$ tar zxvf ffmpegthumbnailer-2.0.6.tar.gz 
[paraches@localhost myTest]$ cd ffmpegthumbnailer-2.0.6
[paraches@localhost ffmpegthumbnailer-2.0.6]$ ./configure
<省略>
checking for FFMPEG... no
configure: error:  +Could not find ffmpeg (libavutil libavformat libavcodec libswscale) 
[paraches@localhost ffmpegthumbnailer-2.0.6]$ 

エラー!


libavutil libavformat libavcodec libswscale、全部ライブラリ入ってるのにな〜。
ffmpeg が入ってるよってお知らせするのはどうするんだろう?と思ったらここに情報が!!!
ライブラリやパッケージの場所の情報を指定して再度トライ。

[paraches@localhost ffmpegthumbnailer-2.0.6]$ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
[paraches@localhost ffmpegthumbnailer-2.0.6]$ LDFLAGS=-L/usr/local/lib CPPFLAGS=-I/usr/local/include ./configure
checking for a BSD-compatible install... /usr/bin/install -c
<省略>
CONFIGURATION SUMMARY ----
png support         : enabled
jpeg support        : enabled
gio support         : disabled
unittests           : disabled
debug mode          : disabled
[paraches@localhost ffmpegthumbnailer-2.0.6]$ 

うまくいった!!!


後は make & make install して、登録&確認。

[paraches@localhost ffmpegthumbnailer-2.0.6]$ make
[paraches@localhost ffmpegthumbnailer-2.0.6]$ sudo make install
[paraches@localhost ffmpegthumbnailer-2.0.6]$ sudo /sbin/ldconfig
[paraches@localhost ffmpegthumbnailer-2.0.6]$ sudo /sbin/ldconfig -p | grep ffmpegthumbnailer
        libffmpegthumbnailer.so.4 (libc6,x86-64) => /usr/local/lib/libffmpegthumbnailer.so.4
        libffmpegthumbnailer.so (libc6,x86-64) => /usr/local/lib/libffmpegthumbnailer.so
[paraches@localhost ffmpegthumbnailer-2.0.6]$ 

ちゃんと、できました!

mediatomb 0.12.1 をインストール

mediatomb のページ
準備が整ったので mediatomb 0.12.1 のインストールを開始。
まずはソースをダウンロードして展開。

[paraches@localhost myTest]$ wget http://downloads.sourceforge.net/mediatomb/mediatomb-0.12.1.tar.gz
[paraches@localhost myTest]$ tar zxvf mediatomb-0.12.1.tar.gz 
[paraches@localhost myTest]$ cd mediatomb-0.12.1


続いて configure する。

[paraches@localhost mediatomb-0.12.1]$ ./configure
<省略>
CONFIGURATION SUMMARY ----

sqlite3               : yes
mysql                 : missing
libjs                 : missing
libmagic              : yes
inotify               : yes
libexif               : yes
id3lib                : disabled
taglib                : yes
libmp4v2              : yes
ffmpeg                : yes
ffmpegthumbnailer     : yes
lastfmlib             : missing
external transcoding  : yes
curl                  : yes
YouTube               : yes
libextractor          : disabled
db-autocreate         : yes

[paraches@localhost mediatomb-0.12.1]$ 

こんなもんで OK かな。


後は make & make install で OK。

[paraches@localhost mediatomb-0.12.1]$ make
[paraches@localhost mediatomb-0.12.1]$ sudo make install


なんとか無事にできたので、とりあえず起動してみる。

[paraches@localhost mediatomb-0.12.1]$ mediatomb

MediaTomb UPnP Server version 0.12.1 - http://mediatomb.cc/

===============================================================================
Copyright 2005-2010 Gena Batsyan, Sergey Bostandzhyan, Leonhard Wimmer.
MediaTomb is free software, covered by the GNU General Public License version 2
<省略>
[paraches@localhost mediatomb-0.12.1]$ 

動いてる。


とりあえずいつものポートを開ける作業。
まずは 49152番のポートを開ける。


FireFoxhttp://localhost:49152/ にアクセスすると…

ちゃんと管理画面が見える。

mediatomb 0.12.1 の自動起動の設定

さっき起動した mediatomb は CTRL+C で一旦終了して設定を始める。


mediatomb-service-optware というファイルが script フォルダにあって、これを使用してシステム起動時に自動的に起動するようにできる。けど、正直ファイルの配置等がちょっと微妙な感じ。とはいえ、これでシステム起動時にもちゃんと自動で起動してくれている。


まずは、ディレクトリの作成。

[paraches@localhost mediatomb-0.12.1]$ sudo mkdir /opt/var
[paraches@localhost mediatomb-0.12.1]$ sudo mkdir /opt/var/run
[paraches@localhost mediatomb-0.12.1]$ sudo mkdir /opt/var/log
[paraches@localhost mediatomb-0.12.1]$ sudo mkdir /usr/local/var/lock
[paraches@localhost mediatomb-0.12.1]$ sudo mkdir /usr/local/etc/default


で、設定ファイルのコピー

[paraches@localhost mediatomb-0.12.1]$ sudo cp config/mediatomb-default-optware /usr/local/etc/default/mediatomb
[paraches@localhost mediatomb-0.12.1]$ sudo cp config/mediatomb-conf-optware /usr/local/etc/mediatomb.conf
[paraches@localhost mediatomb-0.12.1]$ sudo cp scripts/mediatomb-service-optware /etc/init.d/mediatomb
[paraches@localhost mediatomb-0.12.1]$ sudo chmod +x /etc/init.d/mediatomb


とりあえず、起動の準備はこれで OK。次に mediatomb のサービスを登録。

あ、/usr/local/etc/default/mediatomb の中を true にしておかないと自動的に起動しないよ!


次にファイアーウォールでポートの 50500番を開ける。


これでサービスから起動してみる。(/etc/init.d/mediatomb start でも良いよ。)

起動した!
うまくいかない場合は /opt/var/log/mediatomb がログファイルなので、これを見てみればどこで躓いているか確認できる。

mediatomb 0.12.1 で ffmpegthumbnailer を使ってサムネイル表示

次に、config.xml を編集して PS3 対応と ffmpegthumbnailer を使ったサムネイル表示をしてみる。
今回の自動起動の設定の場合、config.xml は /opt/etc/mediatomb/config.xml になる。
まずは、デフォルトの config.xml にある PS3 関係の変更を行う。以下は変更を行った場所の抜粋。

    <protocolInfo extend="yes"/><!-- For PS3 support change to "yes" -->

        <!-- Uncomment the line below for PS3 divx support -->
        <map from="avi" to="video/divx"/>


更に ffmpegthumbnailer でサムネイル表示をするように を yes に変更。

      <ffmpegthumbnailer enabled="yes">


これで、mediatomb を再起動すれば PS3 でサムネイルが見られるようになった!!!
(見られない場合、データベースを一旦削除すると良いかもしれないらしいです。)

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 で環境を作ってみようとしたら色々と面倒が増えてたので、動くようになるまでの簡単なメモを残しておきました。