iOS中內建ijkplayer視訊直播架構
字數987 閱讀48601 評論249 喜歡696
ijkplayer 是一款做視訊直播的架構, 基于ffmpeg, 支援 Android 和 iOS, 網上也有很多內建說明, 但是個人覺得還是不夠詳細, 在這裡詳細的講一下在 iOS 中如何內建ijkplayer, 即便以前從沒有接觸過, 按着下面做也可以內建成功!
一. 下載下傳ijkplayer
ijkplayer
下載下傳位址:https://github.com/Bilibili/ijkplayer
下載下傳完成後解壓, 解壓後檔案夾内部目錄如下圖:
ijkplayer-master檔案夾内容.png
二. 編譯 ijkplayer
說是編譯 ijkplayer, 其實是編譯 ffmpeg, 在這裡我們已經下載下傳好了
ijkplayer
, 是以 github 上
README.md
中的
Build iOS
那一步中有一些步驟是不需要的.
下面開始一步一步編譯:
1.打開終端, cd 到
jkplayer-master
檔案夾中, 也就是下載下傳完解壓後的檔案夾, 如下圖:
進入到這個檔案夾
2.執行指令行
./init-ios.sh
, 這一步是去下載下傳 ffmpeg 的, 時間會久一點, 耐心等一下.如下圖:
3.在第2步中下載下傳完成後, 執行
cd ios
, 也就是進入到 ios目錄中, 如下圖:
進入ios 檔案夾
4.進入 ios 檔案夾後, 在終端依次執行
./compile-ffmpeg.sh clean
和
./compile-ffmpeg.sh all
指令, 編譯 ffmpeg, 也就是
README.md
中這兩步, 如下圖:
編譯 ffmpeg
編譯時間較久, 耐心等待一下.
三. 打包
IJKMediaFramework.framework
架構
內建 ijkplayer 有兩種方法:
一種方法是按照
IJKMediaDemo
工程中那樣, 直接導入工程
IJKMediaPlayer.xcodeproj
, 在這裡不做介紹, 如下圖:
導入IJKMediaPlayer.xcodeproj
第二種內建方法是把 ijkplayer 打包成
framework
導入工程中使用. 下面開始介紹如何打包
IJKMediaFramework.framework
, 按下面步驟開始一步一步做:
- 首先打開工程
, 位置如下圖:IJKMediaPlayer.xcodeproj
打開後是這樣的, 如下圖:
要打包的 framework 工程.png
2.工程打開後設定工程的 scheme, 具體步驟如下圖:
第一步.png
第二步.png
3.設定好 scheme 後, 分别選擇真機和模拟器進行編譯, 編譯完成後, 進入 Finder, 如下圖:
進入 Finder 後, 可以看到有真機和模拟器兩個版本的編譯結果, 如下圖:
運作後生成的檔案.png
下面開始合并真機和模拟器版本的 framework, 注意不要合并錯了, 合并的是這個檔案, 如下圖:
合并真機和模拟器檔案中的這個檔案.png
打開終端, 進行合并, 指令行具體格式為:
lipo -create "真機版本路徑" "模拟器版本路徑" -output "合并後的檔案路徑"
合并後如下圖:
合并生成後的檔案.png
下面很重要, 需要用合并後的
IJKMediaFramework
把原來的
IJKMediaFramework
替換掉, 如下圖, 希望你能看懂:
用合并生成的檔案替換原來的檔案.png
上圖中的1、2兩步完成後, 綠色框住的那個
IJKMediaFramework.framework
檔案就是我們需要的架構了, 可以複制出來, 稍後我們需要導入工程使用.
四. iOS工程中內建ijkplayer
建立工程, 導入合并後的
IJKMediaFramework.framework
以及相關依賴架構以及相關依賴架構,如下圖:
導入 framework及依賴架構.png
導入架構後, 在
ViewController.m
進行測試, 首先導入
IJKMediaFramework.h
頭檔案, 編譯看有沒有錯, 如果沒有錯說明內建成功.
接着開始在
ViewController.m
檔案中使用
IJKMediaFramework
架構進行測試使用, 寫一個簡單的直播視訊進行測試, 在這裡看一下運作後的結果, 後面會放上 Demo 供下載下傳.
香港衛視直播畫面
至此, ijkplayer 內建完畢!