2012年3月8日木曜日

1-1. Mediatombのインストール

(目次)
Mediatombをインストールするには、Mediatombが必要としている下記モジュールが必要となります。各モジュールのインストールについても記載していきます。
1. ffmpeg
2. curl
3. js
4. inotify-tools
5. taglib
6. libmp4v2
7. lastfmlib
8. ffmpegthumbnailer (追加 2012年7月11日)

※ 上記の他にも、ffmpegthumbnailer、taglib、libextractorがありますが以下の理由でインストールしません。
1) ffmpegthumbnailerはサムネイル画像を表示させる為のものですが、サムネイル表示させるとビエラ側(のバグ)でトランスコードが使用できなくなる。
(追記 2012年7月11日)
サムネイルとトランスコードの問題については(ここ)に原因と対応方法を記載しました。
2) id3libはtaglibと排他使用になる。
3) libextractorはffmpegと排他使用になる。

1) コンパイル環境の作成
デフォルトのオプションでCentOSをインストールしていた場合、コンパイル環境すら無いので必要に応じて下記のようにyumでインストールします。
また、sqlite、mysql、expat、libexifの開発環境についても、yumを使ってここでインストールします。

# yum install gcc.x86_64
# yum install gcc-c++.x86_64
# yum install sqlite-devel.x86_64
# yum install mysql-server.x86_64
# yum install mysql-devel.x86_64
# yum install expat-devel.x86_64
# yum install libexif-devel.x86_64

2) ffmpegのインストール
ffmpegについては必要なモジュールやコンパイルオプションが様々存在します。今回は下記のモジュールをインストールし、バージョンについてはffmpeg-0.6.5とします。
1) LAME
2) OpenCORE-AMR
3) FAAC
4) FAAD2
5) libx264
6) Xvid

2-1) 各モジュールのインストール

1. LAMEのインストール
# tar xvf lame-3.98.4.tar.gz
# cd lame-3.98.4
# ./configure
# make
# make install

2. OpenCORE-AMRのインストール
# tar xvf opencore-amr-0.1.2.tar.gz
# cd opencore-amr-0.1.2
# ./configure
# make
# make install

3. FAACのインストール
# tar faac-1.28.tar.gz
# cd faac-1.28
# ./configure
# make
# make install

4. FAAD2のインストール
# tar xvf faad2-2.7.tar.gz
# cd faad2-2.7
# ./configure
# make
# make install

5. libx264のインストール
 libx264は最新バージョンが日々アップロードされるので、その時のバージョンを指定してください。
コンパイル時にyasmを使用した方が最適化されるようなので可能であればyasmをインストールします。

5-1. yasmのインストール
1. ソースからコンパイルする場合(推奨)
# tar xvf yasm-1.2.0.tar.gz
# cd yasm-1.2.0
# ./configure
# make
# make install
2. yumでインストールする場合
# yum install yasm.x86_64
# yum install yasm-devel.x86_64

5-2. libx264のインストール
# tar jxf x264-snapshot-20101214-2245.tar.bz2
# cd x264-snapshot-20101214-2245
yasmをインストールしている場合
# ./configure --enable-shared --enable-pic
yasmをインストールしていない場合
# ./configure --enable-shared --disable-asm
# make
# make install

6. Xvidのインストール
# tar xvf xvidcore-1.2.2.tar.gz
# cd  xvidcore/build/generic
# ./configure
# make
# make install

2-2) ffmpegのインストール
最後にffmpeg-0.6.5をインストールします。
※ Express5800/S70タイプRBの標準CPUであるPentium G6950はCorei扱いなので、--cpu=coreiを追加しています。

# tar xvf ffmpeg-0.6.5.tar.gz
# cd ffmpeg-0.6.5
# export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
# export CPATH=/usr/local/include
# ./configure --enable-gpl --enable-libmp3lame --enable-libopencore-amrwb --enable-libopencore-amrnb --enable-libxvid --disable-ffplay --disable-ffserver --enable-libfaac --enable-libfaad --enable-libx264 --enable-shared --enable-nonfree --enable-version3 --enable-pthreads --disable-avisynth --enable-avfilter --enable-avfilter-lavf --enable-libdirac --enable-libfaadbin --enable-libgsm --enable-postproc --enable-swscale --enable-vdpau --extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -mtune=generic -fPIC' --cpu=corei
# make
# make install

(補足1)
コマンドラインからffmpegを実行すると/usr/local/libが参照されないのでエラーとなります。
ffmpegを使用するシェルの中に以下の一行を記載することでエラーは出なくなります。
※ ユーザ環境に追加することも可能ですが、ユーザ依存させないためにシェル内で指定します。

export LD_LIBRARY_PATH=/usr/local/lib

(補足2)
SELinuxのセキュリティでエラーとなる場合は、以下のコマンドを一度実行してください。
# chcon -t texrel_shlib_t /usr/local/lib -R

3) curlのインストール
1. ソースからコンパイルする場合
# tar xvf curl-7.19.5.tar.gz
# cd curl-7.19.5
# ./configure
# make
# make install

2. yumでインストールする場合(推奨)
CentOSの場合、curlはインストール済みなので開発環境のみをインストールします。
# yum install curl-devel.x86_64

4) jsのインストール
1. ソースからコンパイルする場合(推奨)
# tar xvf js-1.7.0.tar.gz
# cd js/src
# make BUILD_OPT=1 -f Makefile.ref
# make BUILD_OPT=1 JS_DIST=/usr/local -f Makefile.ref export

2. yumでインストールする場合
# yum install js.x86_64
# yum install js-devel.x86_64

5) inotify-toolsのインストール
1. ソースからコンパイルする場合
# tar zxf inotify-tools-3.14.tar.gz
# cd inotify-tools-3.14
# ./configure
# make
# make install

2. yumでインストールする場合(推奨)
# yum install inotify-tools
# yum install inotify-tools-devel

6) taglibのインストール
1. ソースからコンパイルする場合(推奨)
# tar xvf taglib-1.6.3.tar.gz
# cd taglib-1.6.3
# ./configure
# make
# make install

2. yumでインストールする場合
# yum install taglib.x86_64
# yum install taglib-devel.x86_64

7) libmp4v2のインストール
yumでインストールします。
# yum install libmp4v2.x86_64
# yum install libmp4v2-devel..x86_64

8) lastfmlibのインストール
ソースからコンパイルします。
# tar xvf lastfmlib-0.4.0.tar.gz
# cd lastfmlib-0.4.0
# ./configure
# make
# make install

9) ffmpegthumbnailerのインストール
ffmpegthumbnailerをインストールするには、libjpegとlibpngをインストールしておく必要があります。

9-1) libjpegのインストール
1. ソースからコンパイルする場合
# tar zxvf jpegsrc.v8d.tar.gz
# cd jpeg-8d
# ./configure
# make
# make install
# make install-lib

2. yumでインストールする場合(推奨)
# yum install libjpeg.x86_64
# yum install libjpeg-devel.x86_64

9-2) libpngのインストール
1. ソースからコンパイルする場合
# tar zxvf libpng-1.5.11.tar.gz
# cd libpng-1.5.11
# ./configure
# make check
# make install

2. yumでインストールする場合(推奨)
llibpng.x86_64は標準でインストール済なので開発環境のみインストールします。
# yum install libpng-devel.x86_64

9-3) ffmpegthumbnailerのインストール
ソースからコンパイルします。
# tar zxvf ffmpegthumbnailer-2.0.6.tar.gz
# cd ffmpegthumbnailer-2.0.6
# export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
# LDFLAGS=-L/usr/local/lib CPPFLAGS=-I/usr/local/include
# ./configure --enable-png --enable-jpeg
# make
# make install

10) Mediatombのインストール
最後にMediatombをダウンロードしてインストールします。rpmパッケージと違い起動スクリプトとサービスの登録が必要になります。

10-1) Mediatombのコンパイルとインストール
# tar xvf mediatomb-0.12.1.tar.gz
# cd mediatomb-0.12.1
# ./configure
# make
# make install

(補足)
./configureを実行すると、最後に使用可能なライブラリが表示されます。
sqlite3               : yes
mysql                 : yes
libjs                 : yes
libmagic              : yes
inotify               : yes
libexif               : yes
id3lib                : disabled
taglib                : yes
libmp4v2              : yes
ffmpeg                : yes
ffmpegthumbnailer     : disabled
lastfmlib             : yes
external transcoding  : yes
curl                  : yes
YouTube               : yes
libextractor          : disabled
db-autocreate         : yes

10-2) 起動スクリプトの作成
1. 起動スクリプトのコピー
# cd scripts
# cp mediatomb-service-fedora /etc/init.d/mediatomb

2. 起動スクリプトの修正
ソースからコンパイルすると/usr/local/配下にインストールされるので以下のように変更します。
[ -f /usr/bin/mediatomb ] || exit 0
                       
[ -f /usr/local/bin/mediatomb ] || exit 0

10-3) 設定ファイルの作成
1. 設定ファイルのコピー
# cd config
# cp mediatomb-conf-fedora /etc/mediatomb.conf

2. 使用するインターフェースの指定
eth0を使用している場合は、以下のようにmediatomb.confを修正します。
MT_INTERFACE="NOT_SET"
                   
MT_INTERFACE="eth0"

3. 共有ライブラリの指定
まず、以下のコマンドでmediatombが使用している共有ライブラリを調べます。
# ldd /usr/local/bin/mediatomb

次に、mediatomb.confの最後に共有ライブラリパスを追加します。
※ 64bit環境であれば以下の1行を追加します。
export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64

10-4) サービスの登録
以下のコマンドを実行してサービスの登録を行います。

# chkconfig --add mediatomb

10-5) Mediatombの起動と停止
1. 起動
# service mediatomb start

2. 停止
# service mediatomb stop

(補足)
Mediatombを自動起動する場合は、以下のコマンドを実行してください。Mediatombの初期設定は、sqliteを使用するようになっていますが、mysqlを使用するように変更するのでmysqldも起動するようにします。
# chkconfig --level 35 mysqld on
# chkconfig --level 35 mediatomb on

10-6) パケットフィルタの設定
CentOSのNetfilterはデフォルトで全てのパケットを破棄するようになっています。ここではMediatombが使うポート番号へのパケットを通すようにルールを追加します。

1. 最初に以下のコマンドでNetfilterに設定されているルールの最後(が破棄するルール)の番号を調べます。
# iptables -t filter -L --line-number

2. 以下のコマンドのXXの所に1.で調べた行番号を入れて実行します。
# iptables -t filter -I RH-Firewall-1-INPUT XX -p tcp --dport 50500 -j ACCEPT
# iptables -t filter -I RH-Firewall-1-INPUT XX -p udp --dport 50500 -j ACCEPT

例)
最後の行が、以下のような場合、
16   REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited

以下のコマンドを実行します。
# iptables -t filter -I RH-Firewall-1-INPUT 16 -p tcp --dport 50500 -j ACCEPT
# iptables -t filter -I RH-Firewall-1-INPUT 16 -p udp --dport 50500 -j ACCEPT

(補足)
IPアドレスで制限を掛ける場合は、下記のように指定します。
# iptables -t filter -I RH-Firewall-1-INPUT XX -p tcp -s 192.168.1.0/24 --dport 50500 -j ACCEPT
# iptables -t filter -I RH-Firewall-1-INPUT XX -p tcp -s 192.168.1.0/24 --dport 50500 -j ACCEPT

3. 最後にルールを保存します。
# service iptables save

10-7) 起動の確認
Mediatombが正しく起動され、クライアントからアクセスできるかを確認します。

1. 起動の確認
Mediatombを起動した後、Google ChromeなどのブラウザからIPアドレスポート番号を指定してアクセスします。例えば、192.168.1.1のサーバにインストールした場合は以下にように指定します。正しく起動していれば、Mediatombのコンテンツ管理画面が表示されます。

http://192.168.1.1:50500/

2. ログの確認
正しくアクセスできない場合などは、Mediatombのログを確認してください。ログは、/var/log/mediatomb です。

3. ビエラでの確認
ビエラとサーバが同一ネットワーク内にあれば、ビエラ側にMediatombが表示されます。
※ 表示されない場合、ビエラの電源を(リモコンで)切って(パチっという音がするまで)10秒ほど待ってからビエラの電源を入れると表示されると思います。(どうも、ビエラ側は電源を切った時にDLNAサーバを登録しているようです)

以上で、Mediatombの基本インストールは完了です。次に、使用するデータベースをMySQLに変更します。

(つづく)

0 件のコメント:

コメントを投稿