- <span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">前面有博客讲到linux下编译ffmpeg</span>
那么编译完成之后应该怎么使用呢?
在参考了ffmpeg解码文件的demo这里给出一个解码的so库JNI实现方法
在编译完成ffmpeg的源码后,新建一个工程如下图目录结构
在ffmpeg编译后的源码中include文件夹中拷贝上述头文件,然后将编译出的so库拷贝至prebuilt文件夹
新建Android.mk
内容如下:
- LOCAL_PATH := $(call my-dir)
- include $(CLEAR_VARS)
- LOCAL_MODULE := avutil-54-prebuilt
- LOCAL_SRC_FILES := prebuilt/libavutil-54.so
- include $(PREBUILT_SHARED_LIBRARY)
- include $(CLEAR_VARS)
- LOCAL_MODULE := avswresample-1-prebuilt
- LOCAL_SRC_FILES := prebuilt/libswresample-1.so
- include $(PREBUILT_SHARED_LIBRARY)
- include $(CLEAR_VARS)
- LOCAL_MODULE := swscale-3-prebuilt
- LOCAL_SRC_FILES := prebuilt/libswscale-3.so
- include $(PREBUILT_SHARED_LIBRARY)
- include $(CLEAR_VARS)
- LOCAL_MODULE := avcodec-56-prebuilt
- LOCAL_SRC_FILES := prebuilt/libavcodec-56.so
- include $(PREBUILT_SHARED_LIBRARY)
- #include $(CLEAR_VARS)
- #LOCAL_MODULE := avdevice-56-prebuilt
- #LOCAL_SRC_FILES := prebuilt/libavdevice-56.so
- #include $(PREBUILT_SHARED_LIBRARY)
- include $(CLEAR_VARS)
- LOCAL_MODULE := avformat-56-prebuilt
- LOCAL_SRC_FILES := prebuilt/libavformat-56.so
- include $(PREBUILT_SHARED_LIBRARY)
- include $(CLEAR_VARS)
- LOCAL_MODULE := avfilter-5-prebuilt
- LOCAL_SRC_FILES := prebuilt/libavfilter-5.so
- include $(PREBUILT_SHARED_LIBRARY)
- include $(CLEAR_VARS)
- LOCAL_MODULE := libffmpegutil
- LOCAL_SRC_FILES := FFmpeg.c
- LOCAL_LDLIBS := -llog -ljnigraphics -lz -landroid -lm -pthread
- LOCAL_SHARED_LIBRARIES := avcodec-56-prebuilt avdevice-56-prebuilt avfilter-5-prebuilt avformat-56-prebuilt avutil-54-prebuilt avswresample-1-prebuilt swscale-3-prebuilt
- include $(BUILD_SHARED_LIBRARY)
新建Application.mk 内容:
- APP_ABI := armeabi-v7a
- APP_PLATFORM := android-9
- package com.android;
- import android.util.Log;
- public class FFmpeg {
- static {
- try {
- System.loadLibrary("avutil-54");
- System.loadLibrary("swresample-1");
- System.loadLibrary("swscale-3");
- System.loadLibrary("avcodec-56");
- System.loadLibrary("avformat-56");
- System.loadLibrary("avfilter-5");
- System.loadLibrary("ffmpegutils");