私は簡単なやり方があります。私はアンドロイド環境で動作しているffmpegを使って、一連の写真をビデオにマージする必要があります。ライブラリとしてのアンドロイドでのffmpegの実行
コンパイルffmpegを実行する方法を説明するさまざまなチュートリアルとサンプルを使用して1週間以上にわたって戦った後、私は中期的な成功と言います。私は最終的にアンドロイド用のffmpegをコンパイルしました。
私はこの例に従っています: https://github.com/appunite/AndroidFFmpeg 私にとってはうまくいきました。
持って次のディレクトリ構造ffmpegの構築の結果:私の質問はどのようにある
#include <string.h>
#include <jni.h>
#include <stdlib.h>
#include <stdio.h>
#include <assert.h>
#include <android/log.h>
#include <stdlib.h>
#include <stdbool.h>
bool initted = false;
static JavaVM *sVm;
jstring Java_com_example_hellojni_HelloJni_stringFromJNI(JNIEnv* env, jobject thiz) {
char **argv;
char *cmd;
int argc;
// cmd = "ffmpeg -version";
// argv = parsedargs(cmd, &argc);
// ffmpeg(argc, argv);
return (*env)->NewStringUTF(env, "Hello from JNI !");
}
:私はJavaからCコードを実行しているので、私はまた、NDKの例を踏襲
[Project]/jni/ffmpeg-build/armeabi-v7a/libffmpeg.so
[Project]/jni/ffmpeg-build/armeabi/libffmpeg.so
[Project]/jni/ffmpeg-build/mips/libffmpeg.so
[Project]/jni/ffmpeg-build/x86/libffmpeg.so
を私の "hello-jni" cファイルからffmpegの関数を実行してください。私は私のhello-jniが意図されているffmpegの上にラッパーを書く必要があることを読んだ。
私のAndroid.mkはおそらく私の目標を達成するために重要な部分ですが、正直なところ私はこのファイルに設定されているいくつかの行を理解していません。それとも、私は物事をうまくいかせる方法を知らない。
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := ffmpeg-prebuilt
LOCAL_SRC_FILES := ffmpeg-build/$(TARGET_ARCH_ABI)/libffmpeg.so
LOCAL_EXPORT_C_INCLUDES := ffmpeg-build/$(TARGET_ARCH_ABI)/include
LOCAL_EXPORT_LDLIBS := ffmpeg-build/$(TARGET_ARCH_ABI)/libffmpeg.so
LOCAL_PRELINK_MODULE := true
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_ALLOW_UNDEFINED_SYMBOLS=true
LOCAL_MODULE := hello-jni
LOCAL_SRC_FILES := hello-jni.c
LOCAL_C_INCLUDES := $(LOCAL_PATH)/ffmpeg-build/$(TARGET_ARCH_ABI)/include
LOCAL_SHARED_LIBRARY := ffmpeg-prebuilt
#LOCAL_CFLAGS += -g -Iffmpeg-prebuilt -Ihello-jni -Wno-deprecated-declarations
#LOCAL_LDLIBS += -llog -lz -landroid ffmpeg-build/$(TARGET_ARCH_ABI)/libffmpeg.so
include $(BUILD_SHARED_LIBRARY)
もう1つ。 ffmpegの主な機能をラップする方法の例を見つけました。完全に欠けている Can FFmpeg be used as a library, instead of a standalone program?
要約すると、私は私の問題はに起因するものであると思う:それは私はffmpegののAPIを知らないsinse私のためのffmpegを使用する最も簡単な方法になるだろうと私はそれがこの方法をffmpegの実行することが可能です願っていますc/C++の知識、特に.soライブラリから任意の関数を使用する方法。
私は誰かが私を助けることを願っています:)。
[JavaCV](http://code.google.com/p/javacv/)にバンドルされているバイナリを試すことができます。それらを構築する方法についての指示もあります。 –