実際問題、Chinachu サーバを DLNA 対応する必要とか別になかったんだけど、興味からやってみた。
Linux で DLNA サーバというと「MediaTomb」がメジャーなようなのですが、なんとなく好かなかったので、NETGEAR の ReadyNAS 向けに開発されたプログラムである「ReadyMedia (MiniDLNA)」を使ってみることにした。
理由は軽量そうだということ、DLNA/UPnP-AV クライアントに完全に準拠することを目指して作成されており、製品として販売されているもの (ベース?) であることもあり、対応クライアントが多そうだと感じたため。
# もし NAS を導入することがあるなら、是非 NETGEAR 製品をば。
流れとしては、
MiniDLNA より FFmpeg の方が大変だった。
必要なパッケージのインストール。
yasm を導入。 (x264 のコンパイルするために必要)
続いて x264 を導入。
fdk-aac の導入。
ようやく、FFmpeg を導入。
必要なパッケージを yum で導入。
MiniDLNA をインストール。
設定ファイルをコピー。
設定ファイルを編集。必要に応じて適当に変更すること。
Chinachu サーバ用なので、こんな感じにした。
systemd への対応。
新たにファイルを作成して、
下記内容を書き込む。
/etc/sysconfig/minidlna に必要な情報を書き込む。
サービスを起動&登録。
firewalld の設定をする。
とりあえず dlna 用の設定ファイルを1つ作る。
中身はこんな感じでいいかと。 (設定ファイルでポート番号を 8200 から変えた場合には、それに合わせて変えること。そもそも、8200 は不要な場合もあるかもだが、とりあえずこんな感じでいいかと。)
設定を反映しておきます。
設定が終わったら、適当な DLNA クライアント (PS3 とか) からアクセスしてみるといいかなと。
というわけで、以上。
参考サイト
Linux で DLNA サーバというと「MediaTomb」がメジャーなようなのですが、なんとなく好かなかったので、NETGEAR の ReadyNAS 向けに開発されたプログラムである「ReadyMedia (MiniDLNA)」を使ってみることにした。
理由は軽量そうだということ、DLNA/UPnP-AV クライアントに完全に準拠することを目指して作成されており、製品として販売されているもの (ベース?) であることもあり、対応クライアントが多そうだと感じたため。
# もし NAS を導入することがあるなら、是非 NETGEAR 製品をば。
流れとしては、
- MiniDLNA に必要なパッケージ・ライブラリの導入
- FFmpeg (とそれ導入するために yasm、x264、ついでに fdk-aac)
- 各種ライブラリ
- MiniDLNA のインストール
- MiniDLNA の設定
- MiniDLNA の起動設定
- ポート開放
■ FFmpeg の導入
MiniDLNA より FFmpeg の方が大変だった。
必要なパッケージのインストール。
# yum install autoconf automake cmake freetype-devel gcc gcc-c++ git libtool make mercurial nasm pkgconfig zlib-devel
yasm を導入。 (x264 のコンパイルするために必要)
# cd /usr/local/src
# wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
# tar zxvf yasm-1.3.0.tar.gz
# cd ./yasm-1.3.0.tar.gz
# ./configure
# make
# make install
# wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
# tar zxvf yasm-1.3.0.tar.gz
# cd ./yasm-1.3.0.tar.gz
# ./configure
# make
# make install
続いて x264 を導入。
# cd /usr/local/src
# git clone --depth 1 git://git.videolan.org/x264
# cd x264
# ./configure --enable-shared
# make
# make install
# git clone --depth 1 git://git.videolan.org/x264
# cd x264
# ./configure --enable-shared
# make
# make install
fdk-aac の導入。
# cd /usr/local/src
# wget http://jaist.dl.sourceforge.net/project/opencore-amr/fdk-aac/fdk-aac-0.1.4.tar.gz
# tar xzf fdk-aac-0.1.3.tar.gz
# cd fdk-aac-0.1.3
# ./configure
# make
# make install
# wget http://jaist.dl.sourceforge.net/project/opencore-amr/fdk-aac/fdk-aac-0.1.4.tar.gz
# tar xzf fdk-aac-0.1.3.tar.gz
# cd fdk-aac-0.1.3
# ./configure
# make
# make install
ようやく、FFmpeg を導入。
# cd /usr/local/src
# git clone --depth 1 git://source.ffmpeg.org/ffmpeg.git
# cd ffmpeg
# ./configure --enable-gpl --enable-nonfree --enable-libfdk_aac --enable-libx264 --pkg-config-flags="--static"
# make
# make install
# git clone --depth 1 git://source.ffmpeg.org/ffmpeg.git
# cd ffmpeg
# ./configure --enable-gpl --enable-nonfree --enable-libfdk_aac --enable-libx264 --pkg-config-flags="--static"
# make
# make install
■ ReadyMedia (MiniDLNA) の導入
必要なパッケージを yum で導入。
# yum install libjpeg-turbo-devel sqlite-devel libexif-devel libid3tag-devel libogg-devel libvorbis-devel flac-devel
MiniDLNA をインストール。
# cd /usr/local/src
# wget http://sourceforge.net/projects/minidlna/files/minidlna/1.1.5/minidlna-1.1.5.tar.gz
# tar zxvf minidlna-1.1.5.tar.gz
# cd minidlna-1.1.5
# ldconfig # ffmpeg の lib がリンクされてない場合に試す ("configure: error: Could not find libavformat - part of ffmpeg" というエラーで躓きまくった。これに悩まされ、時間をかなり無駄にした。)
# ./configure
# make
# make install
# wget http://sourceforge.net/projects/minidlna/files/minidlna/1.1.5/minidlna-1.1.5.tar.gz
# tar zxvf minidlna-1.1.5.tar.gz
# cd minidlna-1.1.5
# ldconfig # ffmpeg の lib がリンクされてない場合に試す ("configure: error: Could not find libavformat - part of ffmpeg" というエラーで躓きまくった。これに悩まされ、時間をかなり無駄にした。)
# ./configure
# make
# make install
設定ファイルをコピー。
# cp minidlna.conf /etc/
# vi /etc/minidlna.conf
# vi /etc/minidlna.conf
設定ファイルを編集。必要に応じて適当に変更すること。
Chinachu サーバ用なので、こんな感じにした。
# directories you want to be scanned
media_dir=V,/home/shared/recorded
# server name
friendly_name=Chinachu
media_dir=V,/home/shared/recorded
# server name
friendly_name=Chinachu
systemd への対応。
新たにファイルを作成して、
# vi /lib/systemd/system/minidlna.service
下記内容を書き込む。
[Unit]
Description=MiniDLNA
After=network.target
[Service]
Type=forking
PIDFile=/var/run/minidlna/minidlna.pid
EnvironmentFile=/etc/sysconfig/minidlna
ExecStart=/usr/local/sbin/minidlnad -R -f $CONFIG_FILE
ExecStop=/bin/kill -SIGTERM $MAINPID
[Install]
WantedBy=multi-user.target
Description=MiniDLNA
After=network.target
[Service]
Type=forking
PIDFile=/var/run/minidlna/minidlna.pid
EnvironmentFile=/etc/sysconfig/minidlna
ExecStart=/usr/local/sbin/minidlnad -R -f $CONFIG_FILE
ExecStop=/bin/kill -SIGTERM $MAINPID
[Install]
WantedBy=multi-user.target
/etc/sysconfig/minidlna に必要な情報を書き込む。
# echo "CONFIG_FILE=/etc/minidlna.conf" > /etc/sysconfig/minidlna
サービスを起動&登録。
# systemctl start minidlna
# systemctl enable minidlna
# systemctl enable minidlna
firewalld の設定をする。
とりあえず dlna 用の設定ファイルを1つ作る。
# vi /usr/lib/firewalld/services/dlna.xml
中身はこんな感じでいいかと。 (設定ファイルでポート番号を 8200 から変えた場合には、それに合わせて変えること。そもそも、8200 は不要な場合もあるかもだが、とりあえずこんな感じでいいかと。)
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>DLNA</short>
<description>For DLNA server service</description>
<port protocol="udp" port="1900" />
<port protocol="tcp" port="5000" />
<port protocol="tcp" port="8200" />
</service>
<service>
<short>DLNA</short>
<description>For DLNA server service</description>
<port protocol="udp" port="1900" />
<port protocol="tcp" port="5000" />
<port protocol="tcp" port="8200" />
</service>
設定を反映しておきます。
# firewall-cmd --add-service=dlna --permanent
# firewall-cmd --reload
# firewall-cmd --reload
設定が終わったら、適当な DLNA クライアント (PS3 とか) からアクセスしてみるといいかなと。
というわけで、以上。
参考サイト
- MediaTomb - Free UPnP MediaServer
- ネットギア【NETGEAR】
- ReadyMedia download | SourceForge.net
- The Yasm Modular Assembler Project
- VideoLAN - x264, the best H.264/AVC encoder
- opencore-amr download | SourceForge.net
- FFmpeg
- CompilationGuide – FFmpeg
- CentOS7 ffmpegをソースからインストール - わすれないうちにメモしよう
- 音楽サーバーをminiDLNAに一本化 ~ソースからインストール~ : Octopus Room
- ReadyMedia(miniDLNA) on CentOS7 | Justin Lim
- とあるSEの備忘録: CentOS7でDLNAサーバー(minidlna)を構築 -サービス設定編-
- Install FFMPEG & x264 on CentOS | CumulusClips
0 件のコメント :
コメントを投稿