2

私は ffmpeg を使用してビデオ プレーヤーを作成しようとしています。このチュートリアルhttp://dranger.com/ffmpeg/tutorial08.htmlを使用します。 .c から .java にやり取りするファイル、私はこれを持っています

tutorial08(http://dranger.com/ffmpeg/tutorial08.c)のcコードを書いて作ってみました

public class RtspReceiver extends Activity {

public SurfaceView sfv;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.principal);
    sfv=(SurfaceView) findViewById(R.id.im);
}

/* load our native library */
static {
    System.loadLibrary("Interface");
}

private static native void Receive(SurfaceView  sf);

}

cでは、これをどのように使用できるかを理解しようとしています

JNIEXPORT void JNICALL isec_projecto_rtspreceiver_RtspReceiver_Receive(JNIEnv * env, jobject  obj, jobject Surface)
{
//what I have to put in here?
}

JavaにあるSurfaceViewをcに配置するにはどうすればよいですか??? その他、tutorial08.cでビデオを抽出してJavaに入れるにはどうすればよいですか? 私は正しく考えていますか?

4

1 に答える 1

0

このチュートリアルは、Android または Java を念頭に置いて作成されていません。

できることの 1 つはFFMPEG、C コードですべてのことを行い、デコードされた画像をキューに入れることです。JavaSurfaceViewから、別のスレッドから、ビットマップをネイティブ コードに渡します。ネイティブ コードでは、デコードされた画像からビットマップのピクセルをAndroidBitmap_lockPixelsなどを使用して埋めます。

'bitmap-plasma'NDKにサンプルがあります。関係ありませんが、ネイティブコードからのFFMPEG操作方法を示しています。Bitmap

于 2012-07-24T17:15:26.193 に答える