CMAKE 之 FFmpeg 项目配置


##先设置变量
set(FFMPEG ${CMAKE_SOURCE_DIR}/ffmpeg)
set(RTMP ${CMAKE_SOURCE_DIR}/rtmp)

# 导入ffmpeg的头文件
include_directories(${FFMPEG}/include)

#配置环境变量
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -L${FFMPEG}/libs/${CMAKE_ANDROID_ARCH_ABI}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -L${RTMP}/libs/${CMAKE_ANDROID_ARCH_ABI}")

#导入所有cpp 文件,
file(GLOB player *.cpp)

#动态库
add_library(
      tsmplayer
      SHARED
      ${player})
find_library(
      log-lib
      log)
target_link_libraries( # Specifies the target library.
      tsmplayer

      # Links the target library to the log library
      # included in the NDK.
      # 忽略顺序的方式,导入
      -Wl,--start-group
      avcodec avfilter avformat avutil swresample swscale
      -Wl,--end-group

      log # 日志库,打印日志用的
      z # libz.so库,是FFmpeg 的支持库
      rtmp # rtmp 流媒体
      android # android 图像处理
      OpenSLES # OpenSLES  native 音频处理
      ${log-lib})

这里面一定要注意 / 分隔符的使用,稍有不慎就会各种报错,而且这个错误提示的是告诉你找不到文件,如果看一些网上的文章很容易就深陷下去,搞得自己崩溃,别问我是怎么知道的,这个问题给我坑的不要不要的,

在配置CMAKE 文件之前还需要指定 NDK 的编译以及打包版本
在build.gradle 文件

android{
  defaultConfig{
          externalNativeBuild {
          cmake {
              abiFilters "armeabi-v7a"
          }
      }
      ndk{
          abiFilters "armeabi-v7a"
      }    
  }
}

配置好信息后,就可以愉快的开发 app 了,

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容