Raspberry Pi 2 ffmpegのコンパイル [Raspberry Pi]
Raspberry Pi 2 でffmpegをコンパイルしてみる。
参考にしたのはお気に入りの動画を携帯で見ようのブログ。
iPhoneで再生するための動画に変換したいので、faac,fdk-aacエンコーダーとx264エンコーダーを組み込む。
ただし、faacとfdk-aacを組み込んだバイナリは再配布禁止になってるので、
自分でコンパイルした。
まずは、コンパイルに必要な準備。
yasmのインストール
% sudo apt-get install yasm
automakeのインストール
% sudo apt-get install automake
libtoolのインストール
% sudo apt-get install libtool
fdk-aacのコンパイル
ソースのダウンロード
% wget http://sourceforge.net/projects/opencore-amr/files/fdk-aac/fdk-aac-0.1.4.tar.gz
解凍
% gzip -cd fdk-aac-0.1.4.tar.gz | tar xvf -
コンパイル&インストール
% cd fdk-aac
% ./configure --prefix=/usr/local --disable-shared
% make
% sudo make install
% cd ..
faacのコンパイル
ソースのダウンロード
% wget http://downloads.sourceforge.net/faac/faac-1.28.tar.bz2
パッチのダウンロード
% wget http://abechin.sakura.ne.jp/sblo_files/k-tai-douga/ffmpeg/faac-1.28.diff
解凍
% bzip2 -cd faac-1.28.tar.bz2 | tar xvf -
パッチをあてて、コンパイル&インストール
% cd faac
% patch -p1 < ../faac-1.28.diff
% ./bootstrap
% ./configure --prefix=/usr/local
% make
エラーが出たので、ソースを修正。
% vi common/mp4v2/mpeg4ip.h 下記のように/* */でコメントアウトする。
/*
#ifdef __cplusplus
extern "C" {
#endif
char *strcasestr(const char *haystack, const char *needle);
#ifdef __cplusplus
}
#endif
*/
% make
またエラーになったので、Makefileを修正
% vi frontend/Makefile
LDADD = $(top_builddir)/libfaac/libfaac.la $(top_srcdir)/common/mp4v2/libmp4v2.a -lm -lstdc++ -lws2_32
の一番後ろの -lws2_32 を削除して、下記のようにする。
LDADD = $(top_builddir)/libfaac/libfaac.la $(top_srcdir)/common/mp4v2/libmp4v2.a -lm -lstdc++
% make
% sudo make install
% cd ..
libx264のコンパイル
ソースのダウンロード
% git clone git://git.videolan.org/x264
テスト用の動画をダウンロードしておく
% wget http://media.xiph.org/video/derf/y4m/park_joy_420_720p50.y4m
コンパイル&インストール
% cd x264
% ./configure --prefix=/usr/local --enable-static
% make fprofiled VIDS="../park_joy_420_720p50.y4m"
% sudo make install
% cd ..
ffmpegのコンパイル
ソースのダウンロード
% git clone git://source.ffmpeg.org/ffmpeg.git
コンパイル&インストール
% cd ffmpeg
% ./configure --prefix=/usr/local --enable-gpl --enable-nonfree --enable-libfdk-aac --enable-libfaac --enable-libx264 --disable-ffplay --disable-ffprobe --disable-ffserver --disable-debug --extra-ldflags=-static --optflags="-O2 -finline-functions"
% make
% sudo make install
% cd ..
% ffmpeg -codecs > codecs.txt
として、
DEA.L. aac AAC (Advanced Audio Coding) (decoders: aac libfdk_aac ) (encoders: aac libfaac libfdk_aac )
DEV.LS h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (encoders: libx264 libx264rgb )
のようにエンコーダーが入っていればOK
Windows用にコンパイルをした時の話はまたそのうち。
参考にしたのはお気に入りの動画を携帯で見ようのブログ。
iPhoneで再生するための動画に変換したいので、faac,fdk-aacエンコーダーとx264エンコーダーを組み込む。
ただし、faacとfdk-aacを組み込んだバイナリは再配布禁止になってるので、
自分でコンパイルした。
まずは、コンパイルに必要な準備。
yasmのインストール
% sudo apt-get install yasm
automakeのインストール
% sudo apt-get install automake
libtoolのインストール
% sudo apt-get install libtool
fdk-aacのコンパイル
ソースのダウンロード
% wget http://sourceforge.net/projects/opencore-amr/files/fdk-aac/fdk-aac-0.1.4.tar.gz
解凍
% gzip -cd fdk-aac-0.1.4.tar.gz | tar xvf -
コンパイル&インストール
% cd fdk-aac
% ./configure --prefix=/usr/local --disable-shared
% make
% sudo make install
% cd ..
faacのコンパイル
ソースのダウンロード
% wget http://downloads.sourceforge.net/faac/faac-1.28.tar.bz2
パッチのダウンロード
% wget http://abechin.sakura.ne.jp/sblo_files/k-tai-douga/ffmpeg/faac-1.28.diff
解凍
% bzip2 -cd faac-1.28.tar.bz2 | tar xvf -
パッチをあてて、コンパイル&インストール
% cd faac
% patch -p1 < ../faac-1.28.diff
% ./bootstrap
% ./configure --prefix=/usr/local
% make
エラーが出たので、ソースを修正。
% vi common/mp4v2/mpeg4ip.h 下記のように/* */でコメントアウトする。
/*
#ifdef __cplusplus
extern "C" {
#endif
char *strcasestr(const char *haystack, const char *needle);
#ifdef __cplusplus
}
#endif
*/
% make
またエラーになったので、Makefileを修正
% vi frontend/Makefile
LDADD = $(top_builddir)/libfaac/libfaac.la $(top_srcdir)/common/mp4v2/libmp4v2.a -lm -lstdc++ -lws2_32
の一番後ろの -lws2_32 を削除して、下記のようにする。
LDADD = $(top_builddir)/libfaac/libfaac.la $(top_srcdir)/common/mp4v2/libmp4v2.a -lm -lstdc++
% make
% sudo make install
% cd ..
libx264のコンパイル
ソースのダウンロード
% git clone git://git.videolan.org/x264
テスト用の動画をダウンロードしておく
% wget http://media.xiph.org/video/derf/y4m/park_joy_420_720p50.y4m
コンパイル&インストール
% cd x264
% ./configure --prefix=/usr/local --enable-static
% make fprofiled VIDS="../park_joy_420_720p50.y4m"
% sudo make install
% cd ..
ffmpegのコンパイル
ソースのダウンロード
% git clone git://source.ffmpeg.org/ffmpeg.git
コンパイル&インストール
% cd ffmpeg
% ./configure --prefix=/usr/local --enable-gpl --enable-nonfree --enable-libfdk-aac --enable-libfaac --enable-libx264 --disable-ffplay --disable-ffprobe --disable-ffserver --disable-debug --extra-ldflags=-static --optflags="-O2 -finline-functions"
% make
% sudo make install
% cd ..
% ffmpeg -codecs > codecs.txt
として、
DEA.L. aac AAC (Advanced Audio Coding) (decoders: aac libfdk_aac ) (encoders: aac libfaac libfdk_aac )
DEV.LS h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (encoders: libx264 libx264rgb )
のようにエンコーダーが入っていればOK
Windows用にコンパイルをした時の話はまたそのうち。
タグ:Raspberry Pi
2015-06-09 22:05
nice!(0)
コメント(2)
トラックバック(0)
これって、ラズパイに入れとけばPC用の動画をスマホで見るときに、
ラズパイがエンコードしてくれるって事だよね?やるなラズパイ。
ただ変換するだけならラズパイでやる意味ないもんね。
by eram (2015-06-10 00:44)
興味本位で入れたからまだ変換試してないや。
ラズパイでリアルタイムエンコーディング出来るかは分かんないね。
MPEGだとハードウェアのエンコーダー持ってるみたいで、地デジの再生は問題ないらしいけど、ハードウェアエンコーダー使うには課金が必要だ。
X264変換にそのハードウェアエンコーダーが使えるかも不明。
by ろ (2015-06-10 19:02)