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

FFMpeg簡介

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

FFMpeg集成步驟

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


Paste_Image.png


在這裏我是將文件夾放到了桌面,能夠查看此時的文件目錄git


Paste_Image.png

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

第二步:下載完整的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等)。ui

第三步:集成 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.添加工程所缺的庫文件,編譯後,會發現編譯成功了
相關文章
相關標籤/搜索