[[labs.beatcraft.com]]~ [[bc9/Software/OpenEmbedded]]~ *ffmpeg for bc9 [#s0bb9ace] **version [#z45fd85a] 今回は git で source を取得しています。~ version は master branch の ~ commit 5d0910641a2b281c8fe3c83863d6f284de66f255 ~ になります。~ 2009年9月15日時点の最新版です。~ ***source file 取得方法 [#j598da15] 1.まずは git clone で ffmpeg の最新版を取得します。~ $ cd /home/beat $ git clone git://git.ffmpeg.org/ffmpeg/ $ cd /home/beat/ffmpeg $ git clone git://git.ffmpeg.org/libswscale/ 最新版を使用する場合はここまで実行したら完了になります。~ ~ 2.次に上記の時点(2009年9月15日時点の最新版)と同じ状態の ffmpeg を取得します。~ 最新版の取得後以下のようにして下さい。~ $ cd /home/beat/ffmpeg 上記 commit のSHA-1ハッシュ値の最初の7文字で指定して git checkout を実行します。~ $ git checkout 5d09106 これで2009年9月15日時点の ffmpeg の source file を取得できます。~ **環境変数設定 [#h248d8ef] まず bc9 版を build するためには、bc9 用 kernel を build した時と同様 cross compile のために以下のような環境変数を設定します。 export PATH=/home/beat/gumstix/gumstix-oe/tmp/cross/bin:$PATH export ARCH=arm export CROSS_COMPILE=arm-angstrom-linux-gnueabi- bc9-oe-sdk/bc9-android-sdk の /home/beat/kernel_work/envsetup.sh を source すれば上記の設定が行えます。 ** configure [#bf075e5c] bc9 の cpu XScale 270 の iWMMXt に最適化した ffmpeg を build するため、以下の option で configure を実行します。 ./configure --prefix=/home/beat/temp/usr/local \ --disable-static --enable-shared --enable-pthreads \ --cross-prefix=arm-angstrom-linux-gnueabi- --enable-cross-compile \ --arch=arm --disable-armvfp --extra-cflags="-march=iwmmxt" ffmpeg の configure の arch 判定、cpu 判定は 少し工夫をしないと iWMMXt が正しく判定されません。~ arm-angstrom-linux-gnueabi-gcc や arm-angstrom-linux-gnueabi-as のテストで iWMMXt を正しく判定させるためには、~ configure 内の条件で判定させず直接 arm-angstrom-linux-gnueabi-gcc に -march=iwmmxt を引数として渡さなければなりません。~ -> --extra-cflags="-march=iwmmxt" を追加します。~ また、XScale 270 は armv5te + iWMMXt で VFP は載っていないので、armvfp も無効にします。~ -> --disable-armvfp を追加します。~ 上記の config option で configure を実行すると armv6、armv6t2 は自動判定で無効になります。~ **make & make install [#p0133f7f] prefix を /home/beat/temp/usr/local としてありますので、アーカイブ作成のために~ make install で仮インストールをすると /home/beat/temp/usr/local 以下に /bin や /lib が作られインストールされます。~ これを bc9 では /usr/local に install しますので、以下のようにインストール用アーカイブを作成します。 $ cd /home/beat/temp/ $ tar cvfz ffmpeg_for_bc9.tgz usr できあがったインストール用アーカイブ使って bc9 実機にインストールする場合は以下の手順を実行します。~ アーカイブを bc9 にコピー~ $ scp ffmpeg_for_bc9.tgz root@{bc9_IPADDR}:/ bc9 に login 後アーカイブを展開~ root@bc9:~$ tar -C / -xzvf ffmpeg_for_bc9.tgz 展開終了後、ldconfig を実行します。~ root@bc9:~$ ldconfig bc9 は /etc/ld.so.conf にすでに /usr/local/lib の設定があり、/usr/local/bin にも default で PATH が通っていますので~ ldconfig を実行すれば /usr/local/bin/ffmpeg が実行可能になります。 **URL [#xe4143a8] build 済みのインストール用アーカイブは以下の url からダウンロードできます。~ ビルド済みのインストール用アーカイブは以下の url からダウンロードできます。~ http://sourceforge.jp/frs/redir.php?m=osdn&f=%2Fbc9-dev%2F43624%2Fffmpeg_for_bc9_20090918.tgz