H.264 エンコーディングを有効にするには、libx264 をサポートする ffmpeg をインストールする必要がありました。Android-ndk-r9d で利用可能なツールチェーンを使用して、以下のスクリプトを使用して libx264 を正常にインストールしました。
#!/bin/bash
NDK=~/android-ndk-r9d
SYSROOT=$NDK/platforms/android-8/arch-arm/
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64
function build_one
{
./configure \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--sysroot="$SYSROOT" \
--host=arm-linux \
--enable-pic \
--enable-shared \
--disable-cli
make clean
make
make install
}
build_one
libx264 をサポートする ffmpeg をビルドしたいと思いました。以下のスクリプトのように、 --enable-libx264 、 --enable-nonfree 、 --enable-gpl オプションを指定して以下のスクリプトを使用しました。
#!/bin/bash
NDK=~/android-ndk-r9d
SYSROOT=$NDK/platforms/android-8/arch-arm/
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64
function build_one
{
./configure \
--prefix=$PREFIX \
--enable-shared \
--enable-nonfree \
--enable-gpl \
--enable-libx264 \
--disable-doc \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--disable-avdevice \
--disable-doc \
--disable-symver \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--target-os=linux \
--arch=arm \
--enable-cross-compile \
--sysroot=$SYSROOT \
--extra-cflags="-Os -fpic $ADDI_CFLAGS" \
--extra-ldflags="$ADDI_LDFLAGS" \
$ADDITIONAL_CONFIGURE_FLAG
make clean
make
make install
}
CPU=arm
PREFIX=$(pwd)/android/$CPU
ADDI_CFLAGS="-marm"
build_one
しかし、スクリプトを実行すると、「エラー: libx264 が見つかりません」というエラーが表示されます。
ffmpeg は libx264 のインストール場所を特定できないと思います。libx264 のインストール後、 /usr/local/bin の /usr/local/lib 実行可能ファイルに libx264.so ファイルがあり、 /usr/local/include ディレクトリにヘッダー ファイルがあります。
libx264 を検出するには、ffmpeg ビルド スクリプトにどのような変更を加える必要がありますか?
注:クロスコンパイルにUbuntu 12.04(64ビット)を使用しています。