2010-12-05 25 views
9

Bambuser(http://bambuser.com/opensource)が提供するFFMPEG実行ファイルとライブラリをビルドしました。だから私はAndroidの実行可能ファイルとライブラリを構築することができました。私のEclipseプロジェクトでこれらのライブラリをリンクし、JavaからFFmpeg関数を呼び出すにはどうすればいいですか?オープンソースコードにはCヘッダファイルが含まれています。AndroidでFFMpeg jni?

私はAndroid用のネイティブコードを初めて使用しています。これは簡単な答えが見つかりませんでした。基本的には:Android互換のライブラリとCヘッダファイルをいくつか持っていて、Java(+ Android SDK)からlibariの機能を再利用するためには何が必要ですか?

ご協力いただければ幸いです。

敬具、

WhyHow

+0

ffmpegをビルドする手順を教えてください。私はウィンドウとcygwin 1.7.9を使用しています。 –

+0

多くの研究の末、Windowsを使用してffmpegをコンパイルできないようなファイル名/ファイルパスの規則の問題があるようです。私は、UbuntuをインストールするためにVM웨어を使用し、それらをコンパイルしました。 – gtcompscientist

+0

@Swathi EP:ほとんどのガイドスレッドはWindowsではなくLinuxまたはMac OSで動作しています。私はまだWindows用の投稿を見つけていないが、私はすでにアンドロイドのために構築されたlibsを含むウェブサイトを見つけた。今すぐダウンロードして使用できます。そのウェブサイトはhttp://code.google.com/p/javacv/downloads/list、幸いです! – Levanphong7887

答えて

5

あなたはJavaコードへのFFmpegの機能を公開するためにJNIの規則を使用して、いくつかのCのグルーコードを記述する必要があります。ここでのAndroid NDKのサンプルからCで実装さJNIメソッドの例です:

jstring 
Java_com_example_hellojni_HelloJni_stringFromJNI(JNIEnv* env, 
                jobject thiz) 
{ 
    return (*env)->NewStringUTF(env, "Hello from JNI !"); 
} 

また、ライブラリをロードし、ネイティブメソッドを宣言するために、いくつかのJavaコードを必要とします。

public class HelloJni 
{ 
    public native String stringFromJNI(); 

    static { 
     System.loadLibrary("hello-jni"); 
    } 
} 

私はすでにJavaのメディアフレームワークと統合するためにffmpegのためにいくつかのJNIインタフェースを実装していthis project on sourceforgeを見つけました。それが役に立つかもしれません。

Javaのネイティブ関数プロトタイプを宣言して直接呼び出すことを可能にする、JNA(Javaネイティブアクセス)という別のJava FFIテクノロジがあります。それを使用すると、定型コードが少なくて済みます。 Androidの実装については、this projectを参照してください。 (私はそれを自分で使ったことはありません)

関連する問題