SSブログ

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用にコンパイルをした時の話はまたそのうち。

タグ:Raspberry Pi
nice!(0)  コメント(2)  トラックバック(0) 

nice! 0

コメント 2

eram

これって、ラズパイに入れとけばPC用の動画をスマホで見るときに、
ラズパイがエンコードしてくれるって事だよね?やるなラズパイ。

ただ変換するだけならラズパイでやる意味ないもんね。
by eram (2015-06-10 00:44) 

ろ

興味本位で入れたからまだ変換試してないや。
ラズパイでリアルタイムエンコーディング出来るかは分かんないね。
MPEGだとハードウェアのエンコーダー持ってるみたいで、地デジの再生は問題ないらしいけど、ハードウェアエンコーダー使うには課金が必要だ。
X264変換にそのハードウェアエンコーダーが使えるかも不明。
by (2015-06-10 19:02) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

Raspberry pi 2 OSの設定Raspberry Pi 2 ffmpe.. ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。