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
- 新建一個新項目,例如:LHTestFFmpeg。
- 將FFmpeg-iOS文件夾(桌面下載的ffmpeg庫文件)添加到LHTestFFmpeg工程中。
- 配置頭文件搜索路徑:在工程文件->Bulid Setting->Search Paths->Header Search Paths添加$(SRCROOT)/$(PRODUCT_NAME)/FFmpeg-iOS/include,(請根據自己實際路徑更改)
- 在工程中新建ffmpeg文件夾,並從ffmpeg-3.0的文件中添加如下八個文件:
Paste_Image.png
Paste_Image.png - command+B編譯會發現報這個錯誤:
'config.h' file not found
,這是由於找不到config.h文件,不要緊,去桌面源文件中找。於是我們在桌面文件夾中找到scratch文件夾,隨便打開一個文件夾找到config.h ,拖到工程中。編譯后發現這個問題得到了解決,此時工程結構如下:
Paste_Image.png - 編譯后,會發現又出現了如下的問題:
'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文件夾
下創建相應的文件夾,例如:compat
、libavcodec
文件夾,並添加相關文件。
這一步是最繁瑣的也是最容易出錯的,這里不懂得可以給我回復,我會及時回答的。 - 將所有的文件導入以后,會得到如下結構的工程列表:
Paste_Image.png
8.添加工程所缺的庫文件,編譯后,會發現編譯成功了