ffmpeg配置教程

weixin_34041003發表於2017-07-24

https://cnbin.github.io/blog/2015/05/19/iospei-zhi-ffmpegkuang-jia/

FFmpeg 是一套可以用來記錄、轉換數字音訊、視訊,並能將其轉化為流的開源計算機程式。採用 LGPL 或 GPL 許可證。它提供了錄製、轉換以及流化音視訊的完整解決方案。由於公司專案要用到實時視訊監控播放,所以在這裡記下如何移植 FFmpeg 開源框架到 iOS 上面。

1.第一步先安裝yam

http://pan.baidu.com/s/1nv5Mj6h

解壓之後輸入一下命令:

 cd yasm-1.2.0
 ./configure
 make
 make install

2.到https://github.com/libav/gas-preprocessor下載 gas-preprocessor.pl
檔案,複製gas-preprocessor.pl
到/usr/bin
下,(修改檔案許可權 chmod 777 /usr/local/bin/gas-preprocessor.pl)???

問題:/usr/bin無法獲取修改許可權
由於系統啟用了SIP(System Integerity Protection)導致root使用者也沒有修改許可權,所以我們需要遮蔽掉這個功能,具體做法是:
1.重啟電腦
2.command + R 進入recover模式
3.點選最上方選單使用工具,選擇終端
4.執行命令csrutil disable
5.當出現successfully字樣,代表關閉成功!

搭建步驟
1.下載指令碼檔案
https://github.com/kewlbear/FFmpeg-iOS-build-script
這個指令碼可以一次編譯,就生成適合各個版本的iPhone。ffmpeg官網,可以找到適合所對應作業系統下載原始碼包。

2.編譯指令碼
解壓後找到 build-ffmpeg.sh 檔案,輸入
./build-ffmpeg.sh

指令碼則會自動從github中把ffmpeg原始碼下到本地並開始編譯。 編譯結束後,檔案目錄如下:


3080352-8d1277018d311a6d.jpg
img

ffmpeg-2.6.2是原始碼, FFmpeg-iOS是編譯出來的庫,裡面是我們需要的.a 靜態庫,一共有7個。 終端輸入
lipo -info libavcodec.a

3080352-3461afd2b45f9b56.png
Paste_Image.png

可以檢視.a 包支援的架構,包括 armv7 armv7s i386 x86_64 arm64這幾個架構。

3.把 FFmpeg-iOS 匯入工程。
這裡我下載一個 demo 工程 iFrameExtractor-master
,git程式碼參考:https://github.com/lajos/iFrameExtractor
或者 RTSPPlayer
https://github.com/SutanKasturi/RTSPPlayer

demo目錄如下:


3080352-e54b9d5f189e3329.jpg
img

然後在Build Settings
中找到Search Paths
,設定Header Search Pahts
和 Library Search Paths
如下。不然會報include“libavformat/avformat.h” file not found
錯誤。

相關文章