iOS 音視頻 -- 編譯FFmpeg

#文件依賴

  1. 最新版的gas-preprocessor
  2. FFmpeg-iOS-build-script
  3. yasm

gas-preprocessor

下載最新的gas-preprocessor

  1. cd gas-preprocessor目錄
  2. sudo cp -f /Users/username/Desktop/gas-preprocessor-master/gas-preprocessor.pl /usr/local/bin/
  3. chmod 777 /usr/local/bin/gas-preprocessor.pl

如果第三步失敗,可以試試chmod +x gas-preprocessor.pl

yasm

無需下載,直接執行以下命令

  1. brew install yasm
  2. yasm --version

FFmpeg-iOS-build-script

  1. cd 下載目錄 如:cd /Users/username/Downloads/FFmpeg-iOS-build-script-master
  2. ./build-ffmpeg.sh 執行腳本
  3. 等待編譯結束 編譯結束後,會下載一個最新的FFmpeg如下圖

編譯完成

編譯常見錯誤

執行腳本./build-ffmpeg.sh時出現

錯誤:GNU assembler not found, install/update gas-preprocessor
原因: gas-preprocessor不是最新版

xcode新建工程

  1. 把編譯好的文件lib 和 include添加到工程中
  2. 添加依賴
    – libz.tbd
    – libbz2.tbd
    – libiconv.tbd
    – VideoToolBox.framework
  3. 添加Header Search Path
    $(PROJECT_DIR)/FFmpegDemo/FFmpeg/include
  4. 編譯工程

注意:Header Search Path的添加的目錄
在這裏插入圖片描述
在這裏插入圖片描述

編譯好的Demo

  1. 第三方kxmovie基於FFmpeg音視頻播放器
  2. 導入工程後會出現編譯錯誤
    – KxMovieDecoder 找不到UIImage 解決方案:#import <UIKit/UIKit.h>
    –報錯找不到 libavformat/avformat.h 解決方法:Header Search Path添加include目錄,Xcode編譯工程中已經提到
    – Implicit declaration of function ‘avpicture_deinterlace’ is invalid in C99 方法:對應的代碼註釋掉,應爲在FFmpeg3.0以後已經失效
    – 枚舉值根據提示替換掉即可

Demo
鏈接:https://pan.baidu.com/s/1oYYQS7abQKSumRTZy_WD9A
密碼:di9e

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章