« WSL(Windows10)にRaspberry Pi 3用のクロスコンパイル環境を整備する | トップページ | WSL(Windows10)上にxaptでRaspberry Piのクロスコンパイル用ライブラリをダウンロードする »

WSL(Windows10)でRaspberry Pi 3用のffmpegをクロスコンパイルする

[STEP1] x264パッケージ
ソースファイルを作業ディレクトリに展開して、以下でビルドしました。

$ ./configure --enable-static --disable-gpl --host=arm-linux \
   --cross-prefix=/usr/bin/arm-linux-gnueabihf-                  \
   --prefix=/usr/arm-linux-gnueabihf/ --disable-asm            \
   --disable-opencl
$ make     --->  マルチプロセッサであれば、make -j8 などで早く終わります
$ sudo make install-lib-static

ここではconfigure最後の--disable-openclが大事。これが無いと、ffmpegのconfigure時にopenclが見つからないと言われて相当悩みました。

[STEP2]ffmpeg (最新の3.2.4を使ってみました)
ソースファイルを作業ディレクトリに展開して、以下でビルドしました。

CROSS_TRIPPLE=arm-linux-gnueabihf
CROSS_PREFIX=/usr/arm-linux-gnueabihf
./configure --enable-gpl --enable-version3 --enable-nonfree \
        --enable-libx264                                                      \
        --disable-doc --disable-htmlpages --disable-podpages \
        --disable-txtpages --disable-debug                            \
        --pkg-config-flags="--static"                                    \
        --enable-mmal --enable-omx --enable-omx-rpi           \
        --arch=armel --cpu=armv7-a  --target-os=linux           \
        --enable-cross-compile                                            \
        --prefix=${CROSS_PREFIX}                                        \
        --sysroot=${CROSS_PREFIX}/opt/vc                           \
        --cross-prefix=/usr/bin/${CROSS_TRIPPLE}-              \
        --extra-cflags="-I${CROSS_PREFIX}/opt/vc/include -I${CROSS_PREFIX}/opt/vc/include/IL"
$ make               --->  マルチプロセッサであれば、make -j8 などで早く終わります
$ sudo make install-libs
$ sudo make install-headers

以上で、出来上がったffmpeg、ffserver、x264などをRaspberry PiのSD Cardに入れれば使えます。video4linux2などを使ってカメラ画像をライブ配信されている方の記事も参考に試したら無事に動作しました。

なお、ffmpegを--enable-omx-rpiでコンパイルするには、前の記事で書いたuserlandのライブラリやインクルードファイルを用意しておく必要があります。
また、最後のsudo make installは、${CROSS_PREFIX}下にRaspberry Pi上の実行イメージやライブラリを置いておくもので、他のツールのクロスコンパイルでもlibavライブラリなどが使えるようにしようというものです。

β版とはいえ、Windows 10(64bit)のWSLでもRaspberry Pi用バイナリがクロスコンパイルできたのは、少々感動ものでした。

« WSL(Windows10)にRaspberry Pi 3用のクロスコンパイル環境を整備する | トップページ | WSL(Windows10)上にxaptでRaspberry Piのクロスコンパイル用ライブラリをダウンロードする »

Raspberry Pi」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/601747/64885788

この記事へのトラックバック一覧です: WSL(Windows10)でRaspberry Pi 3用のffmpegをクロスコンパイルする:

« WSL(Windows10)にRaspberry Pi 3用のクロスコンパイル環境を整備する | トップページ | WSL(Windows10)上にxaptでRaspberry Piのクロスコンパイル用ライブラリをダウンロードする »