参考:
http://tq09931.iteye.com/blog/1011895
刚刚把ffmpeg编译成功了,但是为了验证是否正确 需要些一个测试程序
搜了一下 大多数都是验证了avcodec_version这个函数 我也一样 ,具体如下
1、java
package com.lp.ffmpeg; import android.app.Activity; import android.os.Bundle; public class FfmpegActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); System.out.println(getFFmpegVersion()); } public native String getFFmpegVersion(); static{ System.loadLibrary("ffmpeg"); System.loadLibrary("ffmpeg-test"); } }
2、jni
需要把ffmpeg的源码复制到jni目录下,注意这里的源码不是你下载的ffmpeg0.8.1,是运行了config.sh之后的ffmpeg
#include <jni.h> #include <string.h> #include <ffmpeg/libavcodec/avcodec.h> #include "com_lp_ffmpeg_FfmpegActivity.h" JNIEXPORT jstring JNICALL Java_com_lp_ffmpeg_FfmpegActivity_getFFmpegVersion (JNIEnv * env, jobject obj){ char str[25]; sprintf(str, "%d", avcodec_version()); return (*env)->NewStringUTF(env, str); }
3、Android.mk
LOCAL_PATH := $(call my-dir) # include $(CLEAR_VARS) LOCAL_MODULE := ffmpeg-prebuild LOCAL_SRC_FILES := libffmpeg.so include $(PREBUILT_SHARED_LIBRARY) # include $(CLEAR_VARS) LOCAL_MODULE := libffmpeg-test LOCAL_C_INCLUDES := $(LOCAL_PATH)/ffmpeg LOCAL_SRC_FILES := com_lp_ffmpeg_FfmpegActivity.c LOCAL_LDLIBS := -L$(LOCAL_PATH) LOCAL_LDLIBS += -llog LOCAL_SHARED_LIBRARIES := ffmpeg-prebuild include $(BUILD_SHARED_LIBRARY)
4、运行 就ok了