解决思路
1.打印ffmpeg内部输出日志到Android Studio logcat:
void my_logoutput(void* ptr, int level, const char* fmt, va_list vl) {
LOGE("ffmpeg", "%s", fmt);
}
av_log_set_level(AV_LOG_INFO);
av_log_set_callback(my_logoutput);
发现是没有为ffmpeg设置jvm虚拟机
2.添加jvm虚拟机到ffmpeg
extern "C" {
#include <libavcodec/jni.h>
}
jint JNI_OnLoad(JavaVM* vm, void* reserved)//这个类似android的生命周期,加载jni的时候会自己调用
{
av_jni_set_java_vm(vm, reserved);
return JNI_VERSION_1_6;
}
OK,问题解决