推流
- LiveVideoCoreSDK
框架提供IOS蘋果手機(jī)的RTMP推流填寫RTMP服務(wù)地址,直接就可以進(jìn)行推流,SDK下載后簡(jiǎn)單的工程配置后能直接運(yùn)行,實(shí)現(xiàn)了美顏直播和濾鏡功能,基于OpenGL,前后攝像頭隨時(shí)切換,提供RTMP連接狀態(tài)的回調(diào)。
這個(gè)框架是國(guó)內(nèi)比較早的一款推流框架有不少在使用這個(gè)SDK,功能非常齊全,作者也比較牛,用來(lái)學(xué)習(xí)推流采集相關(guān)內(nèi)容非常好,但是集成到工程中有些困難(對(duì)于我來(lái)說(shuō))??偟膩?lái)說(shuō)這是一款非常厲害的推流SDK,幾乎全部使用C++寫的,編譯效率非常好,如果有實(shí)力的話推薦使用這個(gè)框架來(lái)做自己項(xiàng)目的推流端。
- 可讀性比較好的推流LFLiveKit
框架支持RTMP(Real Time Messaging Protocol ):實(shí)時(shí)消息傳輸協(xié)議,Adobe公司的。
HlS (HTTP Live Streaming) :蘋果自家的動(dòng)態(tài)碼率自適應(yīng)技術(shù)。主要用于PC和Apple終端的音視頻服務(wù)。包括一個(gè)m3u(8)的索引文件,TS媒體分片文件和key加密串文件。
推薦這個(gè)框架第一是因?yàn)樗饕褂肙C寫的,剩下的用C語(yǔ)言寫的,框架文件十分清晰,這對(duì)不精通C++的初學(xué)者提供了很大的便利,并且拓展性非常強(qiáng),支持動(dòng)態(tài)切換碼率功能,支持美顏功能
拉流
iOS端集成ijkplayer實(shí)現(xiàn)直播#拉流#播放
安裝構(gòu)建必要的環(huán)境
# install homebrew, git, yasm
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install git
brew install yasm
構(gòu)建
下載ffmpeg和編譯ffmpeg會(huì)花費(fèi)比較長(zhǎng)的時(shí)間,可以去泡一杯咖啡:)
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-ios
cd ijkplayer-ios
git checkout -B latest k0.4.4.1
./init-ios.sh
cd ios
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all
運(yùn)行
用Xcode打開(kāi)ios/IJKMediaDemo/IJKMediaDemo.xcodeproj,驗(yàn)證是否構(gòu)建正確
打包 IJKMediaFrame.framework
要想將ijkplayer集成到項(xiàng)目中,有兩種方法:
- README 中的做法,這個(gè)方法比較麻煩,不推薦
- 打包 IJKMediaFrame.framework框架,就是把 ijkplayer 打包成 framework導(dǎo)入工程中使用。下面開(kāi)始介紹如何打包IJKMediaPlayer.framework,按照下面步驟一步一步做:
1、首先,打開(kāi)工程 IJKMediaPlayer.xcodeproj,位置如下:

打開(kāi)后,如下圖:

2、設(shè)置工程的 scheme


設(shè)置好 scheme 后,分別選擇真機(jī)模式和模擬器進(jìn)行編譯,編譯完成后,進(jìn)入 Finder,如下圖

進(jìn)入 Finder 后,可以看到,有真機(jī)和模擬器兩個(gè)版本的編譯結(jié)果,如下圖:

3、合并真機(jī)和模擬器版本的framework
注意: 不要合錯(cuò)了,要合并的是這個(gè)文件,如下圖:

打開(kāi)終端,進(jìn)行合并,命令行的格式如下:
lipo -create "真機(jī)版本路徑" "模擬器版本路徑" -output "合并后的文件路徑"
合并后,如下圖:

4、用合并生成的 IJKMediaFramework 替換掉原來(lái)的IJKMediaFramework

圖中的1、2兩步完成后,藍(lán)色框中的那個(gè)IJKMediaFramework.framework文件就是我們所需要的框架了,可以復(fù)制出來(lái),稍后我們需要導(dǎo)入項(xiàng)目中使用。
那么,到此,用于 調(diào)試(Debug)的 IJKMediaFramework.framework就制作完成了。
用于發(fā)布(Release)的 IJKMediaFramework.framework 制作過(guò)程是類似的,就不再介紹。
已經(jīng)將兩種模式下的 IJKMediaFramework.framework 上傳至網(wǎng)盤,
網(wǎng)盤分享鏈接: https://page13.ctfile.com/dir/14174113-21635467-cd9f24/
使用打包好的 IJKMediaFramework.framework 將 ijkplayer 集成到項(xiàng)目中
1、 新建工程,導(dǎo)入合并后的 IJKMediaFramework.framework
調(diào)試的話,拖入調(diào)試版的 ijkplayer 庫(kù)
發(fā)布的話,拖入發(fā)布版的 ijkplayer 庫(kù)

2、查看 ijkplayer 的 README,導(dǎo)入依賴庫(kù)

如圖,導(dǎo)入依賴庫(kù)完成

3、測(cè)試一下是否集成成功
在ViewController.m中進(jìn)行測(cè)試,首先導(dǎo)入IJKMediaFramework.h頭文件,編譯一下,看有沒(méi)有報(bào)錯(cuò),如果沒(méi)有報(bào)錯(cuò),就說(shuō)明集成成功了。
經(jīng)過(guò)編譯,證實(shí)集成成功了。
經(jīng)測(cè)試:iOS 10 以上的系統(tǒng)才能播放,否則崩潰了。