Windows下编译、移植、使用ffmpeg(移植篇)
2016-10-27 14:06
357 查看
Windows下编译、移植、使用ffmpeg(移植篇)
创建一个新的Android工程VideoPlayer
在工程根目录下创建jni文件夹
在jni下创建prebuilt目录,然后:把libswscale-4.so,libavformat-57.so,libavutil-55.so,libswresample-2.so,libavcodec-57.so 5个so文件放入到该目录下; 将ffmpeg3.0.1\android\arm\include目录下的所有头文件放到该目录下。
创建VideoPlayer.class其中内容为
5、右键VideoPlayer ->externtools ->javah生成头文件文件内容为
6、编写Android.mk文件内容为
7、编写Application.mk文件,内容
8、打开AndroidStudio terminal界面 进入项目根目录 jni输入ndk-build生成libs\armebabi目录9、截止上面这几步,一般都完成了移植,但是我这里ndk-build找不到VideoPlayer.o文件,于是我在build->intermediates目录下找到obj文件夹,里面就是我编译完成的文件,最后附上移植完成的项目结构图
log.h文件是类似Android 的Log,VideoPlayer.c是视频的具体实现类。
10、参考文章 http://blog.csdn.net/gobitan/article/details/22750719http://blog.csdn.net/glouds/article/details/50937266 下一篇Windows下编译、移植、使用ffmpeg(使用篇)
创建一个新的Android工程VideoPlayer
在工程根目录下创建jni文件夹
在jni下创建prebuilt目录,然后:把libswscale-4.so,libavformat-57.so,libavutil-55.so,libswresample-2.so,libavcodec-57.so 5个so文件放入到该目录下; 将ffmpeg3.0.1\android\arm\include目录下的所有头文件放到该目录下。
创建VideoPlayer.class其中内容为
public class VideoPlayer { static { System.loadLibrary("VideoPlayer"); } public static native int play(Object surface,String string); }
5、右键VideoPlayer ->externtools ->javah生成头文件文件内容为
/* DO NOT EDIT THIS FILE - it is machine generated */ #include <jni.h> /* Header for class jonesx_videoplayer_VideoPlayer */ #ifndef _Included_jonesx_videoplayer_VideoPlayer #ifdef __cplusplus extern "C" { #endif /* * Class: jonesx_videoplayer_VideoPlayer * Method: play * Signature: (Ljava/lang/Object;Ljava/lang/String;)I */ JNIEXPORT jint JNICALL Java_jonesx_videoplayer_VideoPlayer_play (JNIEnv *, jclass, jobject, jstring); #ifdef __cplusplus } #endif #endif
6、编写Android.mk文件内容为
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := avcodec LOCAL_SRC_FILES := prebuilt/libavcodec-57.so include $(PREBUILT_SHARED_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE := avformat LOCAL_SRC_FILES := prebuilt/libavformat-57.so include $(PREBUILT_SHARED_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE := avutil LOCAL_SRC_FILES := prebuilt/libavutil-55.so include $(PREBUILT_SHARED_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE := swresample LOCAL_SRC_FILES := prebuilt/libswresample-2.so include $(PREBUILT_SHARED_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE := swscale LOCAL_SRC_FILES := prebuilt/libswscale-4.so include $(PREBUILT_SHARED_LIBRARY) include $(CLEAR_VARS) LOCAL_SRC_FILES := VideoPlayer.c LOCAL_LDLIBS += -llog -lz -landroid LOCAL_MODULE := VideoPlayer LOCAL_C_INCLUDES += $(LOCAL_PATH)/include LOCAL_SHARED_LIBRARIES:= avcodec avformat avutil swresample swscale include $(BUILD_SHARED_LIBRARY)
7、编写Application.mk文件,内容
APP_ABI := armeabi APP_PLATFORM := android-9
8、打开AndroidStudio terminal界面 进入项目根目录 jni输入ndk-build生成libs\armebabi目录9、截止上面这几步,一般都完成了移植,但是我这里ndk-build找不到VideoPlayer.o文件,于是我在build->intermediates目录下找到obj文件夹,里面就是我编译完成的文件,最后附上移植完成的项目结构图
log.h文件是类似Android 的Log,VideoPlayer.c是视频的具体实现类。
10、参考文章 http://blog.csdn.net/gobitan/article/details/22750719http://blog.csdn.net/glouds/article/details/50937266 下一篇Windows下编译、移植、使用ffmpeg(使用篇)
相关文章推荐
- Windows下编译、移植、使用ffmpeg(编译篇)
- Windows下编译、移植、使用ffmpeg(使用篇)
- Windows下编译、移植、使用ffmpeg(序)
- windows下使用MinGW+msys编译ffmpeg
- windows下使用MinGW+msys编译ffmpeg,以及如何加入eclipse CDT调试
- windows下使用MinGW+msys编译ffmpeg
- windows下使用MinGW+msys编译ffmpeg
- Windows 系统下使用 MinGW + MSYS + GCC 编译 FFMPEG
- windows下使用ndk-r8e编译libffmpeg.so-1.2.1要点
- windows下使用MinGW+msys编译ffmpeg
- Windows系统使用minGW+msys 编译ffmpeg 0.5的全过程详述
- windows下使用MinGW+msys编译ffmpeg
- FFMpeg在windows下的编译和使用
- windows下使用MinGW+msys编译ffmpeg
- windows下cygwin使用ndkr8编译ffmpeg
- ubuntu下使用脚本交叉编译windows下使用的ffmpeg
- Windows 系统下使用 MinGW + MSYS + GCC 编译 FFMPEG
- 在 Windows 7 下使用 Android NDK r5c 编译 FFmpeg 0.7.1
- windows下使用MinGW+msys编译ffmpeg
- windows下使用MinGW+msys编译ffmpeg