ffmpeg(HLS) を QNAP にインストール

この記事は約5分で読めます。

ffmpeg のコンパイル

QNAP TS-119PII で ffmpeg(HLS) をインストールする必要が出てきたので「QNAPにffmpegをインストール」を参考にしてやってみた.
一部うまくいかなかったので備忘録として残しておく.

事前準備

ipkg install gcc
ipkg install make
ipkg install autoconf
ipkg install coreutils
ipkg install pkgconfig
ipkg install lame
ipkg install libvorbis
ipkg install git

vi ~/.bashrc
(/opt/bin をpathに加える)
exec bash

コマンド差し替え

(※QNAPでコンパイル環境を作るにはを参考にした.ありがとうございます!)
標準の awk だと make で失敗する.
(今回,grep は変更の必要はないが...)
cd /bin
mv grep grep-
mv awk awk-
mv sed sed-
ipkg install grep
ipkg install gawk
ipkg install sed
ln -s /opt/bin/grep .
ln -s /opt/bin/awk .
ln -s /opt/bin/sed .

openssl のインストール

cd /share/HDA_DATA/homes/admin
wget http://www.openssl.org/source/openssl-1.0.1p.tar.gz
tar xvzf openssl-1.0.1p.tar.gz
cd openssl
./config --prefix=/opt
make
make install

rtmpdump のインストール

cd ..
wget http://rtmpdump.mplayerhq.hu/download/rtmpdump-2.3.tgz
tar xvzf rtmpdump-2.3.tgz
cd rtmpdump-2.3
make SYS=posix prefix=/opt
make install

ffmpeg のインストール

cd ..
git clone git://source.ffmpeg.org/ffmpeg.git
cd ffmpeg
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/
vi /usr/local/lib/pkg-config/librtmp.pc
(URLの行を削除)
./configure --prefix=/opt --enable-libmp3lame --enable-openssl --enable-librtmp --enable-libvorbis --disable-asm
WARNING: gcc 4.2 is outdated and may miscompile FFmpeg. Please use a newer compiler.
などと言われるが無視.

make
make install

/etc/ld.so.conf
を以下のように設定
/opt/lib
/opt/local/lib
/usr/local/lib

ldconfig
を実行.

結果
# ffmpeg
ffmpeg version N-76506-g3d20f8e Copyright (c) 2000-2015 the FFmpeg developers
built with gcc 4.2.3 (GCC)
configuration: --prefix=/opt --enable-libmp3lame --enable-openssl --enable-librtmp --enable-libvorbis --disable-asm
libavutil 55. 5.100 / 55. 5.100
libavcodec 57. 15.100 / 57. 15.100
libavformat 57. 14.100 / 57. 14.100
libavdevice 57. 0.100 / 57. 0.100
libavfilter 6. 14.101 / 6. 14.101
libswscale 4. 0.100 / 4. 0.100
libswresample 2. 0.100 / 2. 0.100
Hyper fast Audio and Video encoder

再起動で消えてしまうことへの対策

vi /share/HDA_DATA/.qpkg/autorun/autorun.sh
に以下のスクリプトを追加.
chmod +x /share/HDA_DATA/.qpkg/autorun/autorun.sh

あらかじめ,path を追加した .bashrc や先ほどの ld.so.conf を
/share/HDA_DATA/config/ に作っておく.
#!/bin/sh
cp /share/HDA_DATA/config/.bashrc /root
cp /share/HDA_DATA/config/ld.so.conf /etc
/sbin/ldconfig

起動時に autorun.sh が呼び出されて,先ほどの設定が復活する.

参考サイト)
QNAPのNAS(TS-419P+)のカスタマイズ
Running Your Own Application at Startup

crontab

備忘録(ffmpegとは無関係)
(※QNAP_cronを使うを参考にした.ありがとうございます!)

/etc/config/crontab
/tmp/cron/crontabs/admin
の両方を変更.起動時に上から下にコピーされるらしい.

再起動しないのであれば両方のファイルを同時に変更してcronを再起動
/etc/init.d/crond.sh restart