QNAPにffmpegをインストール
目的
QNAP(ARPプロセッサー)でffmpegを手動インストールしたメモです。
わざわざ手動で導入したのはCapturestream.rbを使いたいので。いや、本当はCapturestreamが目標なんですが、Capturestreamが目標というと何か怒られそうな気がしただけです。 QNAPのパッケージでもffmpegは入るのですが、Capturestreamを動かしてみると
ffmpegの実行でエラーが起こりました。パスの通った実行可能な場所にHTTP Live Streaming(HLS)に対応したffmpegがあることを確認してください。
となり、上手く動きませんので、HLSに対応するffmpegを手動で入れることにしました。ただHLSっていうのがよくわからないので、そのあたりは適当です。 この記事はffmpegのインストールとCapturestreamを動かすまでが書かれています。
参考にさせていただいたのは、こちら
なにか作ってみるよ。: QNAP x86ベースのNASにffmpegをインストールする
です。
注意
QNAP(ARM)のipkgでは解決できなかったので手動となりました。パッケージ管理外のインストールになるのでメモなどは残しておいた方が良いと思います。
必要なもの
開発環境とライブラリです。ffmpegのコンパイルオプションによりますが、次のものが必要になりました。
開発環境
- ipkg : これがないとダメです。
- gcc : gccからpkgconfigまではipkgで導入できます。('ipkg install gcc' みたいな感じです。)
- make
- autoconf
- coreutils
- pkgconfig
ライブラリ関連
- lane : 'ipkg install lane' で導入できます。
- openssl : ffmpegのコンパイルオプション'--enable-openssl' とrtmpdumpをインストールするのに必要です。デフォルトのopensslだとrtmpdumpがコンパイルできなかったので、手動で導入しました。
- rtmpdump : ffmpegのコンパイルオプション'--enable-librtmp' に必要です。これがないとCapturestreamが動きません。
- faac : なんとなく。ffmpegのコンパイルオプション'--enable-libfaac'に対応します。
- x264 : これもなんとなく。ffmpegのコンパイルオプション'--enable-x264'に対応します。
関連ライブラリのインストール
開発環境とlaneがインストールした後、のこりのライブラリを導入しました。
インストールの準備
インストールするライブラリは'/opt'にしました。configのPREFIXを'/opt'に統一する、ということです。 ipkgで導入しても、'/etc/ld.config'は書き換わらないので、'/opt/lib', '/opt/local/lib'を'/etc/ld.config'に追加して、'ldconfig'コマンドを打っておきます。
後で書きますが、QNAPの仕様で、ldconfigが起動のたびにデフォルトに戻ってしまうので、毎回ld.configを修正しなければいけません。
openssl
難しいことはなく
# ./configure --prefix=/opt
# make
# make install
で終わり。
rtmpdump
configがないので、makeをそのまま使うみたい。
# make SYS=posix prefix=/opt
# make install
libfaac
Android使いだし、あんまり要らないとおもうけど何となく入れました。 これは、普通に configure, make, make instal の王道パターン
# ./configure --prefix=/opt
# make
# make install
x264
とくに難しいことはないですが、yasmを入れていませんのでasmオプションは無効にします。そのほうがスムーズだっただけです。
# ./configure --prefix=/opt --disable-asm --enable-shared
# make
# make install
ffmpeg
ようやく本丸です。オプションだけ決まればそんなに難しくないです。ただ、(安いモデルなので)非力なCPUでコンパイルに時間がかかりました。 asm がdisableなのは、x264と同じくです。まぁ、ここまで来るまでが大変だったんですが。
# ./configure --prefix=/opt --disable-asm --enable-libmp3lame --enable-libx264 --enable-nonfree --enable-libfaac --enable-gpl --enable-openssl --enable-librtmp
# make
# make install
ここまで準備すればCapturestreamは動きます。faacはいらないかもしれませんけど。 はまりやすいのは、ldconfigですかね。staticにしちゃえばいいんでしょうけど、それはそれなりに大変なんですよね、たぶん。