ffmpeg编译的android可用的so文件,多个版本

时间:2019-02-08 16:22:10
【文件属性】:

文件名称:ffmpeg编译的android可用的so文件,多个版本

文件大小:4.39MB

文件格式:RAR

更新时间:2019-02-08 16:22:10

ffmpeg jni android so

经过本人测试,可以调用并成功执行ffmpeg的命令 jni相关的c语言代码为 #include #include #include #ifdef ANDROID #include #include #define LOGE(format, ...) __android_log_print(ANDROID_LOG_ERROR, "(>_<)", format, ##__VA_ARGS__) #define LOGI(format, ...) __android_log_print(ANDROID_LOG_INFO, "(=_=)", format, ##__VA_ARGS__) #else #define LOGE(format, ...) LOGE("(>_<) " format "\n", ##__VA_ARGS__) #define LOGI(format, ...) LOGE("(^_^) " format "\n", ##__VA_ARGS__) #endif int ffmpegmain(int argc, char **argv); //Output FFmpeg's av_log() void custom_log(void *ptr, int level, const char* fmt, va_list vl){ //To TXT file FILE *fp=fopen("/storage/emulated/0/av_log.txt","a+"); if(fp){ vfprintf(fp,fmt,vl); fflush(fp); fclose(fp); } //To Logcat //LOGE(fmt, vl); } JNIEXPORT jint JNICALL Java_com_rinogame_ffmpegandroidtranscoder_MainActivity_ffmpegcore( JNIEnv * env, jobject thiz, jint cmdnum, jobjectArray cmdline) { //FFmpeg av_log() callback av_log_set_callback(custom_log); int argc=cmdnum; char** argv=(char**)malloc(sizeof(char*)*argc); int i=0; for(i=0;iGetObjectArrayElement(env,cmdline,i); const char* tmp=(*env)->GetStringUTFChars(env,string,0); argv[i]=(char*)malloc(sizeof(char)*1024); strcpy(argv[i],tmp); } ffmpegmain(argc,argv); for(i=0;i


【文件预览】:
libswresample-1.so
libavcodec-56.so
libavfilter-5.so
libpostproc-53.so
libswscale-3.so
libavutil-54.so
libavformat-56.so
libavdevice-56.so

网友评论

  • 可以,看看
  • 没用上,出了点问题
  • 先看看,学习用
  • 资源可以使用,就是接口不知道怎么弄