32ビットのUbuntu 11.04でAndroid NDK r 6コンパイルFFmpeg 0.8.1版-AndroidでFFmpegメディアライブラリを使用する(一)
2874 ワード
最近はFFmpegでAndroidで他の第三者ライブラリを使って開発する練習をしたいです.本文は基本的にUbuntu 10.10 64 bitの下でAndroid NDK r 6を使ってFFmpeg 0.8.1をコンパイルして実現します.1はAndroid NDK r 6ファイルをダウンロードします.2はFFmpeg 0.8.1のバージョンをダウンロードします.2011年10月2日までにFFmpeg 0.8.5バージョンを発表しました.
本論文ではシステムは前にNDK r 6を配置しましたが、コンソールを使ってdk-buildを使ってもコマンドが見つからないことはありません.本論文の関連経路は以下の通りである.
ヘルプ
1
2
ヘルプ
1
2
3
4
5
6
7
8
9
10
11
12
13
ここでは/root/develop/work space/jniディレクトリ4に置くためにコマンドを使用します.
ヘルプ
1
2
ヘルプ
1
6/root/develop/work space/jniディレクトリで実行します.
ヘルプ
1
この操作をする時、How to Build FFmpeg for Androidを参考にしましたが、成功しませんでした.もちろん彼が言ったAndroid NDK r 5はテストしたことがありません.
参考記事:1http://www.cnblogs.com/mcodec/articles/2114674.html 2http://www.cnblogs.com/mcodec/articles/2114714.html 3http://www.cnblogs.com/scottwong/archive/2010/12/17/1909455.html 4http://blog.csdn.net/fsfcvictor/article/details/5972044 5https://gist.github.com/1126971 6http://www.cnblogs.com/shaobin0604/archive/2011/08/05/2128619.ht7 mlhttp://www.roman10.net/?p=389
主な参考
http://www.cnblogs.com/shaobin0604/archive/2011/08/05/2128619.html
本論文ではシステムは前にNDK r 6を配置しましたが、コンソールを使ってdk-buildを使ってもコマンドが見つからないことはありません.本論文の関連経路は以下の通りである.
ヘルプ
1
2
NDK /root/develop/android-ndk-r6
FFmpeg /root/develop/workspace/jni
3実行可能なスクリプトを作成します.ヘルプ
1
2
3
4
5
6
7
8
9
10
11
12
13
./configure --disable-static --enable-shared --enable-gpl --enable-version3 --enable-nonfree --disable-doc --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-avdevice --disable-avfilter --disable-postproc --enable-small --cross-prefix=/root/develop/android-ndk-r6/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi- --enable-cross-compile --target-os=linux --extra-cflags='-I/root/develop/android-ndk-r6/platforms/android-9/arch-arm/usr/include' --extra-ldflags='-L/root/develop/android-ndk-r6/platforms/android-9/arch-arm/usr/lib -nostdlib' --arch=arm --disable-symver --disable-debug --disable-stripping
sed -i 's/HAVE_LRINT 0/HAVE_LRINT 1/g' config.h
sed -i 's/HAVE_LRINTF 0/HAVE_LRINTF 1/g' config.h
sed -i 's/HAVE_ROUND 0/HAVE_ROUND 1/g' config.h
sed -i 's/HAVE_ROUNDF 0/HAVE_ROUNDF 1/g' config.h
sed -i 's/HAVE_TRUNC 0/HAVE_TRUNC 1/g' config.h
sed -i 's/HAVE_TRUNCF 0/HAVE_TRUNCF 1/g' config.h
ファイルのダウンロード:config.shここでは/root/develop/work space/jniディレクトリ4に置くためにコマンドを使用します.
ヘルプ
1
2
chmod 777 ./config.sh
./config.sh
実行後にwarningのヒントがありますが、最後のコンパイルには影響しません.ヘルプ
1
WARNING: /root/develop/android-ndk-r6/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-pkg-config not found, library detection may fail.
5 Android.mkファイルを作成します./root/develop/work space/jniディレクトリの内容はAndroid.mkを参照してください.ここで使っているファイルはAndroid.mkです.6/root/develop/work space/jniディレクトリで実行します.
ヘルプ
1
ndk-build
7本論文では/root/develop/workspace/libs/armeabi/の中でlibffmpeg.soファイルを作成します.この操作をする時、How to Build FFmpeg for Androidを参考にしましたが、成功しませんでした.もちろん彼が言ったAndroid NDK r 5はテストしたことがありません.
参考記事:1http://www.cnblogs.com/mcodec/articles/2114674.html 2http://www.cnblogs.com/mcodec/articles/2114714.html 3http://www.cnblogs.com/scottwong/archive/2010/12/17/1909455.html 4http://blog.csdn.net/fsfcvictor/article/details/5972044 5https://gist.github.com/1126971 6http://www.cnblogs.com/shaobin0604/archive/2011/08/05/2128619.ht7 mlhttp://www.roman10.net/?p=389
主な参考
http://www.cnblogs.com/shaobin0604/archive/2011/08/05/2128619.html