Android使用FFmpeg(二)--Android Studio配置ffmpeg

關於

Android使用FFmpeg(一)--編譯ffmpeg
Android使用FFmpeg(二)--Android Studio配置ffmpeg
Android使用FFmpeg(三)--ffmpeg實現視頻播放
Android使用FFmpeg(四)--ffmpeg實現音頻播放(使用AudioTrack進行播放)
Android使用FFmpeg(五)--ffmpeg實現音頻播放(使用openSL ES進行播放)
Android使用FFmpeg(六)--ffmpeg實現音視頻同步播放
Android使用FFmpeg(七)--ffmpeg實現暫停、快退快進播放android

正文

Android Studio版本3.0
在上次編譯完成事後,將libavcodec-56.so,libavdevice-56.so,libavfilter-5.so,libavformat-56.so,libavutil-54.so,libpostproc-53.so,libswresample-1.so,libswscale-3.so拷貝到libs目錄下,同時把include裏面的頭文件拷貝到libs目錄下,以下:post

在項目的build.gradle文件中配置sourceSets,在defaultConfig這個範圍中,如圖:測試


再來編寫CMakeLists.txt文件,添加如下內容:gradle

include_directories(libs/include)
set(DIR ../../../../libs)
add_library(avcodec-56
            SHARED
            IMPORTED)
set_target_properties(avcodec-56
                      PROPERTIES IMPORTED_LOCATION
                      ${DIR}/armeabi/libavcodec-56.so)

add_library(avdevice-56
            SHARED
            IMPORTED)
set_target_properties(avdevice-56
                      PROPERTIES IMPORTED_LOCATION
                      ${DIR}/armeabi/libavdevice-56.so)
add_library(avformat-56
            SHARED
            IMPORTED)
set_target_properties(avformat-56
                      PROPERTIES IMPORTED_LOCATION
                      ${DIR}/armeabi/libavformat-56.so)
add_library(avutil-54
            SHARED
            IMPORTED)
set_target_properties(avutil-54
                      PROPERTIES IMPORTED_LOCATION
                      ${DIR}/armeabi/libavutil-54.so)
add_library(postproc-53
            SHARED
            IMPORTED)
set_target_properties(postproc-53
                      PROPERTIES IMPORTED_LOCATION
                      ${DIR}/armeabi/libpostproc-53.so)
add_library(swresample-1
             SHARED
             IMPORTED)
set_target_properties(swresample-1
                      PROPERTIES IMPORTED_LOCATION
                      ${DIR}/armeabi/libswresample-1.so)
  add_library(swscale-3
              SHARED
              IMPORTED)
  set_target_properties(swscale-3
                        PROPERTIES IMPORTED_LOCATION
                        ${DIR}/armeabi/libswscale-3.so)
  add_library(avfilter-5
              SHARED
              IMPORTED)
  set_target_properties(avfilter-5
                        PROPERTIES IMPORTED_LOCATION
                        ${DIR}/armeabi/libavfilter-5.so)

同時將target_link_libraries更改成:ui

target_link_libraries( native-lib
                       avfilter-5
                       avcodec-56
                       avdevice-56
                       avformat-56
                       avutil-54
                       postproc-53
                       swresample-1
                       swscale-3
                       ${log-lib})

經過以上步奏,咱們的ffmpeg已經集成到androidstudio裏面了,那麼來驗證一番。
在native-lib.cpp中加入頭文件#include "libavcodec/avcodec.h",同時更改std::string hello = avcodec_configuration();,打印出如下信息,則表示集成成功,後面就能夠在這個基礎上使用了。spa


源碼地址
注意:集成的是armeabi cpu,測試時請使用真機測試。

 .net

相關文章
相關標籤/搜索