原文地址:http://www.cnblogs.com/runner42/p/5241407.html?
SDK下載地址:https://github.com/runner365/LiveVideoCoreSDK
本文介紹一個(gè):IOS 客戶端直播的SDK,代碼完全開(kāi)源十性。
直播時(shí)代:讓IOS普通開(kāi)發(fā)者一天內(nèi)做出一個(gè)RTMP直播客戶端,并且?guī)в忻榔G直播功能。(文章最下面有g(shù)ithub源碼地址)
包含一下功能:
1,提供IOS蘋(píng)果手機(jī)的RTMP推流焦人;
填寫(xiě)RTMP服務(wù)地址别凹,直接就可以進(jìn)行推流。
2昔园,美顏直播
美不美都能裝的直播,IOS OPENGL美艷加速并炮,手機(jī)完全不發(fā)燙默刚。
3,前后攝像頭隨時(shí)切換
4逃魄,提供RTMP連接狀態(tài)的回調(diào)
一荤西,首先簡(jiǎn)單掃盲
當(dāng)前直播都是用RTMP協(xié)議,推流到RTMP服務(wù)器伍俘。
然后RTMP服務(wù)器提供RTMP視頻服務(wù)邪锌;
當(dāng)然通常RTMP服務(wù)器也提供HLS,把視音頻流切片成ts流癌瘾,然后用戶可以直接播放xxx.m3u8的流媒體觅丰。
二,SDK使用簡(jiǎn)介
1妨退,初始化
[LiveVideoCoreSDK sharedinstance]:
全局獨(dú)立的SDK實(shí)例妇萄,你不用管理對(duì)象的申請(qǐng)和釋放;
初始化RTMP連接和視頻參數(shù)咬荷,非常簡(jiǎn)單:
[[LiveVideoCoreSDK sharedinstance] LiveInit:RtmpUrl
Preview:self.view VideSize:LIVE_VIEDO_SIZE_CIF
BitRate:LIVE_BITRATE_500Kbps FrameRate:LIVE_FRAMERATE_20];
參數(shù):
RtmpUrl: rtmp服務(wù)器地址參數(shù)冠句,如rtmp://192.168.30.191/live/123456
Preview: IOS本地預(yù)覽顯示的UIVIEW對(duì)象,現(xiàn)在都喜歡全屏直播模式幸乒,這里直接用self.view
VideSize:
視頻分辨率懦底。這里提供了幾種視頻分辨率,CIF(320*640)罕扎,D1(540*960)聚唐,720P(720*1280)
BitRate: 視頻碼率丐重。有500kbps對(duì)應(yīng)CIF,800kbps對(duì)應(yīng)D1,
2Mbps對(duì)應(yīng)720p拱层,怎么配置就看你手機(jī)當(dāng)前的帶寬情況了弥臼。
FrameRate: 視頻幀率。這個(gè)決定視頻流暢程度根灯,幀率越高越流暢径缅。這里提供:15幀/s,20幀/s烙肺,25幀/s纳猪,20幀/s
2,連接RTMP視頻服務(wù)器
[[LiveVideoCoreSDK sharedinstance] connect];
調(diào)用這個(gè)接口后桃笙,開(kāi)始打開(kāi)iphone本地手機(jī)預(yù)覽氏堤,并且開(kāi)始連接RTMP服務(wù)器。
如果網(wǎng)絡(luò)沒(méi)有問(wèn)題搏明,RTMP服務(wù)器沒(méi)有問(wèn)題鼠锈,直播就開(kāi)始了,簡(jiǎn)單吧星著!
3购笆,設(shè)置濾鏡:提供美艷效果
- (void)setFilter:(LIVE_FILTER_TYPE) type;
當(dāng)前提供了美白效果,設(shè)置一個(gè)LIVE_FILTER_BEAUTY這個(gè)參數(shù)虚循,看看你有多美白同欠。
4,設(shè)置前后攝像頭
- (void)setCameraFront:(Boolean)bCameraFrontFlag;
前后攝像頭隨時(shí)動(dòng)態(tài)切換横缔,想怎么拍就怎么拍铺遂。
5,設(shè)置RTMP連接狀態(tài)回調(diào)
[LiveVideoCoreSDK sharedinstance].delete = self;
在你的viewcontroller中實(shí)現(xiàn)協(xié)議:LIVEVCSessionDelegate茎刚,如下襟锐,這樣你可以隨時(shí)知道RTMP連接的狀態(tài)了。
//rtmp
status delegate:
-(void) LiveConnectionStatusChanged: (LIVE_VCSessionState)sessionState{
dispatch_async(dispatch_get_main_queue(),^{
switch(sessionState) {
caseLIVE_VCSessionStatePreviewStarted:
_RtmpStatusLabel.text = @"RTMP狀態(tài):預(yù)覽未連接";
break;
caseLIVE_VCSessionStateStarting:
_RtmpStatusLabel.text = @"RTMP狀態(tài):連接中...";
break;
caseLIVE_VCSessionStateStarted:
_RtmpStatusLabel.text = @"RTMP狀態(tài):已連接";
break;
caseLIVE_VCSessionStateEnded:
_RtmpStatusLabel.text = @"RTMP狀態(tài):未連接";
break;
caseLIVE_VCSessionStateError:
_RtmpStatusLabel.text = @"RTMP狀態(tài):錯(cuò)誤";
break;
default:
break;
}
});
}
6膛锭,直播結(jié)束捌斧,斷開(kāi)rtmp連接
[[LiveVideoCoreSDK sharedinstance] disconnect];
簡(jiǎn)單吧泉沾,不解釋了。