1. 程式人生 > 其它 >小視訊app原始碼在Mac系統下編譯並使用ijkplyer播放器

小視訊app原始碼在Mac系統下編譯並使用ijkplyer播放器

小視訊app原始碼在Mac系統下編譯並使用ijkplyer播放器
使用Homebrew安裝yasm、pkg-config。
下載NDK官網地址,編譯ffmpeg時會用到,編譯ijkplayer中的ffmpeg需要NDK-r10 ~ NDK-r14版本,其它版本可能會報錯。


在命令列中依次執行:

# 克隆ijkplayer專案原始碼
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-android

# 進入ijkplayer目錄
cd ijkplayer-android

# 切換到最新程式碼分支
git checkout -B latest k0.8.8
# 檢查並下載ffmpeg程式碼 # 需要注意因為github網速原因,很容易會下載失敗 # 或者多重試幾次,讓程式碼分次下載 ./init-android.sh # 配置檔案在ijkplayer-android/config目錄下,可以手動修改module.sh配置 # ijkplayer使用的預設配置是module-lite.sh,其他兩種配置目前是被廢棄狀態,直接切換使用時會報錯linux/perf_event.h: No such file or directory,需要新增配置: # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-linux-perf
" # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-bzlib" # 1.module-default.sh 支援較多格式(完全編譯,幾乎所有格式都支援了),檔案較大 # 2.module-lite-hevc.sh 支援較少格式,包含hevc # 3.module-lite.sh 支援較少格式(預設) cd config rm module.sh ln -s module-lite.sh module.sh source module.sh # 手動修改配置檔案module-lite.sh,例如要支援avi格式視訊播放,在module.sh檔案中,加上 # export COMMON_FF_CFG_FLAGS
="$COMMON_FF_CFG_FLAGS --enable-muxer=avi" # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=avi" # 此外還要將export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-demuxers" # 修改為export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxers" # enable-muxer和enable-demuxer兩項是配置支援更多格式視訊,後面加上需要支援的格式即可支援播放,另外--disable-demuxers需要改為--enable-demuxers # 手動修改module-lite.sh的配置支援avi格式視訊這種方式我這一直沒辦法成功,最後直接把module配置切換到了module-default.sh,成功播放avi視訊 # 編譯ffmpeg,需要用到NDK,ijkplayer編譯的NDK版本需要10~14。配置NDK有兩種方式 # 1.在~/.zshrc中新增系統環境 # 終端輸入vim ~/.zshrc # 在開啟的檔案中,插入: # export ANDROID_NDK=/Users/xxxxx/android-ndk-r14b #ANDROID_NDK換成自己NDK路徑 # export PATH=${PATH}:${ANDROID_NDK} # 終端輸入source ~/.zshrc 使生效 # 鍵入ndk-build -v 驗證NDK配置是否生效 # 但是第一種方式對我無效,編譯ffmpeg時仍然會提示沒有沒找到ANDROID_NDK,所以如果第一種方式無效推薦使用第二種方式 # 2.在終端命令列中通過export引入路徑,終端鍵入:export ANDROID_NDK=/Users/xxxxx/android-ndk-r14b,然後再編譯ffmpeg cd android/contrib export ANDROID_NDK=/Users/xxxxx/android-ndk-r14b ./compile-ffmpeg.sh clean ./compile-ffmpeg.sh all cd .. ./compile-ijk.sh all # 最後編譯好的so庫在ijkplayer-android/android/ijkplayer/ijkplayer-${CPU}/src/main/libs目錄下 # CPU = arm64/armv5/armv7a/x86/x86_64

以上就是小視訊app原始碼在Mac系統下編譯並使用ijkplyer播放器的相關程式碼, 更多內容歡迎關注之後的文章