iOS 集成FFmpeg(通過ffmpeg.h進行調用)


FFMpeg簡介

根據個人的理解,ffmpeg是一個多媒體轉碼、音視頻流化傳輸的一個第三方開源框架,並且這個第三方庫是基於C語言的(表示看不懂,一般看不懂的東西才是牛逼的)。 iOS平台下的ffmpeg主要包括以下一些功能:影音的解碼、編碼、編碼轉換、混合、抽取、串流和濾鏡:相關博客:iOS9 新濾鏡介紹基於GPUImage的實時美顏濾鏡

FFMpeg集成步驟

第一步:下載FFmpeg腳本地址,獲取得到如下圖所示的文件夾:


Paste_Image.png


在這里我是將文件夾放到了桌面,可以查看此時的文件目錄


Paste_Image.png

你會發現只包含了三個文件。

第二步:下載完整的ffmpeg支持庫。
首先打開終端,剛開下載的文件的目錄:cd 文件目錄。這里我的目錄是在桌面,所以:cd /Users/lxh/Desktop/FFmpeg-iOS-build-script-master 然后輸入:./build-ffmpeg.sh 隨后便開始了漫長的下載過程。等完全下載完成以后你會發現,桌面上的文件夾(剛下載的)多了好多的文件。,如圖所示:


Paste_Image.png

這個就是我們剛才通過終端下載的ffmpeg的編譯庫。
其中FFmpeg-iOS文件是我們在項目中需要用到的,另外ffmpeg-3.0文件是全平台下載的編譯文件(包含了TVOS、Mac OS、iOS等)。

第三步:集成 iOS平台下的ffmpeg

  1. 新建一個新項目,例如:LHTestFFmpeg。
  2. 將FFmpeg-iOS文件夾(桌面下載的ffmpeg庫文件)添加到LHTestFFmpeg工程中。
  3. 配置頭文件搜索路徑:在工程文件->Bulid Setting->Search Paths->Header Search Paths添加$(SRCROOT)/$(PRODUCT_NAME)/FFmpeg-iOS/include,(請根據自己實際路徑更改)
  4. 在工程中新建ffmpeg文件夾,並從ffmpeg-3.0的文件中添加如下八個文件:

    Paste_Image.png
    添加完成如下所示:

    Paste_Image.png
  5. command+B編譯會發現報這個錯誤:'config.h' file not found,這是由於找不到config.h文件,不要緊,去桌面源文件中找。於是我們在桌面文件夾中找到scratch文件夾,隨便打開一個文件夾找到config.h ,拖到工程中。編譯后發現這個問題得到了解決,此時工程結構如下:

    Paste_Image.png
  6. 編譯后,會發現又出現了如下的問題:'libavcodec/avcodec.h' file not found和 'compat/va_copy.h' file not found,這個問題是由於沒有找到對應的文件,我們繼續到ffmpeg-3.0對應的文件夾中去查找,並添加。添加規則如下:compat/va_copy.h這個就是要在ffmpeg-3.0中的compat文件夾中去找va_copy.h文件。libavcodec/avcodec.h就是要到ffmpeg-3.0中的libavcodec文件夾中去查找avcodec.h。然后依次在工程的FFmpeg-iOS文件夾下的include文件夾下創建相應的文件夾,例如:compatlibavcodec文件夾,並添加相關文件。
    這一步是最繁瑣的也是最容易出錯的,這里不懂得可以給我回復,我會及時回答的。
  7. 將所有的文件導入以后,會得到如下結構的工程列表:

    Paste_Image.png

    8.添加工程所缺的庫文件,編譯后,會發現編譯成功了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM