CentOS 5.6 に mediatomb をソースコードからインストール
ffmpeg のインストールも終わったので、次は mediatomb をインストール。
これもせっかくだからソースコードからインストールをしてみた。
最終的にサムネイルの表示ができて、トランスコードも ffmpeg を使ってできている。
まずは必要なものをインストール
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番のポートを開ける。
FireFox で http://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 にしておかないと自動的に起動しないよ!
これでサービスから起動してみる。(/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 でサムネイル表示をするように
<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 で環境を作ってみようとしたら色々と面倒が増えてたので、動くようになるまでの簡単なメモを残しておきました。