iOS 使用FFmpeg

原文:http://www.jianshu.com/p/ec432a8f5729


如何在iOS上集成 FFmpeg,來,博主帶大家往坑裏走了。

我們此次入坑需要的工具:

1、gas-preprocessor
2、yasm 1.2.0
3、FFmpeg-iOS-build-script(ps:這個腳本真是業界良心呀,幫我們省下了不少心。)

好了,刀已經有了,但是怎麼優雅的使用出招式呢?慢慢來,博主力求詳細的爲大家分解每個步驟。

1、下載gas-preprocessor
那麼 gas-preprocessor 是什麼呢?

gas-preprocessor 其實就是我們要編譯 FFmpeg 的所需腳本文件。

1)我們將其解壓後,發現內部只有簡單的 4 個文件,如下圖:


gas-preprocessor 解壓後的文件

不難發現其中的 gas-preprocessor.pl,沒錯,這就是我們要找的刀了,恭喜,你獲取了小木劍一把,繼續往坑裏走少年。

2)繼續將 gas-preprocessor.pl 文件複製到 /usr/sbin/ 目錄下(ps:應該會有很多小夥伴發現這個目錄是根本沒法修改的,那麼這種情況下,小夥伴們可以將文件複製到 /usr/local/bin/ 目錄下),然後爲文件開啓可執行權限,打開終端並輸入以下命令行:

chmod 777 /usr/sbin/gas-preprocessor.pl

chmod 777 /usr/local/bin/gas-preprocessor.pl

2、安裝 yasm
yasm 又是什麼呢?

Yasm是一個完全重寫的 NASM 彙編。目前,它支持x86和AMD64指令集,接受NASM和氣體彙編語法,
產出二進制,ELF32 , ELF64 , COFF , Mach - O的( 32和64 ),RDOFF2 ,的Win32和Win64對象的格式,
並生成STABS 調試信息的來源,DWARF 2 ,CodeView 8格式。

1)下載 yasm
上一篇文章博文帶大家下載了一個好東西 homebrew,既然是優雅的編譯,我們就用最像程序員的東西,命令行了,打開終端,輸入如下:

brew install yasm

2)檢測是否已安裝 yasm

brew install yasm

如果你成功安裝了 yasm,輸出如下圖:


brew info yasm

好了,你獲得了隔壁老王內褲一條。額。。讓我們繼續前進。


3、編譯 FFmpeg-iOS-build-script,得到我們需要的 iOS 能用的 ffmpeg 庫

這個腳本有神馬用呢?

不難看出,這個腳本是轉爲 iOS 編譯出可用的 ffmpeg 的庫,這個業界良心,我們稱之爲`神的內褲`。。。
好吧,不搞笑,有了這個腳本,我們根本就不用下載 ffmpeg 了,腳本會幫我們下載好最新版本的 ffmpeg,
並打包成一個 iOS 可用的 ffmpeg 庫提供給我們了,當然,前提是你必須要跟着博主一步一步入坑才行喔。

1)進入我們的 gitHub 網站,把 FFmpeg-iOS-build-script 下載好壓縮包。

2)編譯腳本,打包出我們需要的 iOS 的 ffmpeg 庫
解壓 FFmpeg-iOS-build-script 得到的文件如下:


解壓後得到的 FFmpeg-iOS-build-script

我們目標不是開發 tvos 吧。。那麼我們的目標腳本就只剩下 build-ffmpeg.sh 了。打開終端,進入解壓後的 FFmpeg-iOS-build-script 文件夾,命令行如下:

  cd 小夥伴們的FFmpeg-iOS-build-script文件夾路徑

執行 build-ffmpeg.sh 腳本:

./build-ffmpeg.sh

當然,官方是有說明的:
To build everything:

./build-ffmpeg.sh

To build arm64 libraries:

./build-ffmpeg.sh arm64

To build fat libraries for armv7 and x86_64 (64-bit simulator):

./build-ffmpeg.sh armv7 x86_64

To build fat libraries from separately built thin libraries:

./build-ffmpeg.sh lipo

好了,執行完命令行後,終端就會拿着這條內褲,在啪啪啪了(編譯)。。。這段時間裏,你可以去喝杯咖啡慢慢等待,最後得到的文件如下:


通過腳本編譯 ffmpeg 所得到的文件

小夥伴們不難看到,FFmpeg-iOS 就是我們所需要的文件夾了,看到內部的各種 .a 文件,也就是我們熟悉的靜態庫了。


4、集成FFmpeg 庫開發工程當中

1)把 FFmpeg-iOS 直接複製到你的工程目錄下

2)把 FFmpeg-iOS 從你的工程目錄下拖到工程當中,最後得到的結果如下圖:


集成 FFmpeg 的工程圖

3)編譯一下,你會發下有錯誤,哈哈,原因是你沒有鏈接編譯文件
好,我們進入 Build Setting ,修改 header search Path 鏈接到工程的 include 文件當中 操作如下:


鏈接庫文件

OK,我們可以在工程當中引入 #import "avformat.h" 文件了,編譯 Success

編譯的時候,我就發現,有點問題,很多報錯,原因是要導入一些系統框架:







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