4

00:09:23こんにちは、30 分のビデオ ファイルがありますが、ビデオを からまでスライスしたいと考えています00:25:33。ユーザーがアプリケーションを介してそのビデオを再生しているときに、ビデオの一部を抽出したいと考えています。ビデオの再生中に、ユーザーはビデオをカットする開始時間と終了時間を指定できます。期間に基づいてビデオをカットしてSDカードに保存する方法はありますか?

4

2 に答える 2

0

FFmpeg 機能を Java コードに公開するには、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 Media Framework と統合するために、ffmpeg への JNI インターフェイスをすでに実装しているsourceforge でこのプロジェクトを見つけました。役に立つかもしれません。

JNA (Java Native Access) と呼ばれる別の Java FFI テクノロジがあり、Java でネイティブ関数のプロトタイプを宣言して直接呼び出すことができます。これを使用すると、定型コードが少なくて済む場合があります。Android の実装については、このプロジェクトを参照してください。(私自身は使ったことはありません)

Java から呼び出すことができるJNIラッパー メソッドを含める必要があります。これにより、FFmpeg 関数が呼び出されます。

于 2013-04-04T04:37:46.093 に答える