Andriod项目导入FFMPEG静态库

关于如何编译 FFmpeg 静态库,可以参考上篇文章 Mac平台下编译FFMPEG

  1. 先来看一下项目整体目录结构
image.png
  1. 编写 CMakeLists.txt 文件

    ....
      # 懒得一个一个加源码文件,所以通过指定目录的方式来加载源文件
      # . 表示当前目录
     # SOURCEDIR 表示指定的目录中所有的文件都保存到当前这个变量中
    aux_source_directory(. SOURCEDIR)
    # 将上面定义的变量 SOURCEDIR 添加到库中
    add_library(native-lib SHARED ${SOURCEDIR})
    
    # 引入 FFmpeg 静态库
    # 引 FFmpeg 入头文件目录(根据自己的项目头文件目录来)
    include_directories(include)
    
    # 设置一个变量,来保存 FFmpeg 静态库路径
    set(#变量名,随意命名
            mylibs
            #指定静态库的路径
            ${CMAKE_SOURCE_DIR}/${ANDROID_ABI})
    # 将自定义的变量 mylibs 传给编译器
    set(# CMAKE_CXX_FLAGS 表示要将 CMAKE 声明的变量传给编译器
            CMAKE_CXX_FLAGS
            #-L 表示静态库文件路径
            "${CMAKE_CXX_FLAGS} -L${mylibs}")
    # 链接 FFmpeg 静态库,注意 FFmpeg 库的依赖顺序
    target_link_libraries(native-lib
            #需要特别注意这6个静态库的链接顺序,否则可能出现编译不过的问题。
            avfilter avformat avcodec avutil swresample swscale z)
    

你可能感兴趣的:(Andriod项目导入FFMPEG静态库)