Mediatombをインストールするには、Mediatombが必要としている下記モジュールが必要となります。各モジュールのインストールについても記載していきます。
1. ffmpeg
2. curl
3. js
4. inotify-tools
5. taglib
6. libmp4v2
7. lastfmlib
8. ffmpegthumbnailer (追加 2012年7月11日)
※ 上記の他にも、
(追記 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 件のコメント:
コメントを投稿