直播時代--IOS直播用戶端SDK,美豔直播【開源】,--iossdk

來源:互聯網
上載者:User

直播時代--IOS直播用戶端SDK,美豔直播【開源】,--iossdk

當前ApsaraVideo for Live非常火爆,手機端的ApsaraVideo for Live也非常火爆,PGC、UGC的ApsaraVideo for Live門檻都降低了很多。

本文介紹一個:IOS 用戶端直播的SDK,代碼完全開源。

直播時代:讓IOS普通開發人員一天內做出一個RTMP直播用戶端,並且帶有美豔直播功能。(文章最下面有github源碼地址)

包含一下功能:

1, 提供IOS蘋果手機的RTMP推流;

填寫RTMP服務地址,直接就可以進行推流。

2,美顏直播

美不美都能裝的直播,IOS OPENGL美豔加速,手機完全不發燙。

3,前後網路攝影機隨時切換4,提供RTMP串連狀態的回調

一,首先簡單掃盲

當前直播都是用RTMP協議,推流到RTMP伺服器。

然後RTMP伺服器提供RTMP視頻服務;

當然通常RTMP伺服器也提供HLS,把視音頻流切片成ts流,然後使用者可以直接播放xxx.m3u8的流媒體。

 

二,SDK使用簡介

1,初始化

[LiveVideoCoreSDK sharedinstance]:全域獨立的SDK執行個體,你不用管理對象的申請和釋放;

初始化RTMP串連和視頻參數,非常簡單:

[[LiveVideoCoreSDK sharedinstance] LiveInit:RtmpUrl Preview:self.view VideSize:LIVE_VIEDO_SIZE_CIF BitRate:LIVE_BITRATE_500Kbps FrameRate:LIVE_FRAMERATE_20];

參數:

RtmpUrl: rtmp伺服器位址參數,如rtmp://192.168.30.191/live/123456

Preview: IOS本地預覽顯示的UIVIEW對象,現在都喜歡全屏直播模式,這裡直接用self.view

VideSize: 視頻解析度。這裡提供了幾種視頻解析度,CIF(320*640),D1(540*960),720P(720*1280)

BitRate: 視頻碼率。有500kbps對應CIF,800kbps對應D1, 2Mbps對應720p,怎麼配置就看你手機當前的頻寬情況了。

FrameRate: 視訊框架率。這個決定視頻流暢程度,幀率越高越流暢。這裡提供:15幀/s,20幀/s,25幀/s,20幀/s

2,串連RTMP視頻伺服器

[[LiveVideoCoreSDK sharedinstance] connect];

調用這個介面後,開始開啟iphone本地手機預覽,並且開始串連RTMP伺服器。

如果網路沒有問題,RTMP伺服器沒有問題,直播就開始了,簡單吧!

3,設定濾鏡:提供美豔效果

- (void)setFilter:(LIVE_FILTER_TYPE) type;

當前提供了美白效果,設定一個LIVE_FILTER_BEAUTY這個參數,看看你有多美白。

4,設定前後網路攝影機

- (void)setCameraFront:(Boolean)bCameraFrontFlag;

前後網路攝影機隨時動態切換,想怎麼拍就怎麼拍。

5,設定RTMP串連狀態回調

[LiveVideoCoreSDK sharedinstance].delete = self;

在你的viewcontroller中實現協議:LIVEVCSessionDelegate,如下,這樣你可以隨時知道RTMP串連的狀態了。

//rtmp status delegate:

- (void) LiveConnectionStatusChanged: (LIVE_VCSessionState) sessionState{

    dispatch_async(dispatch_get_main_queue(), ^{

        switch (sessionState) {

            case LIVE_VCSessionStatePreviewStarted:

                _RtmpStatusLabel.text = @"RTMP狀態: 預覽未串連";

                break;

            case LIVE_VCSessionStateStarting:

                _RtmpStatusLabel.text = @"RTMP狀態: 串連中...";

                break;

            case LIVE_VCSessionStateStarted:

                _RtmpStatusLabel.text = @"RTMP狀態: 已串連";

                break;

            case LIVE_VCSessionStateEnded:

                _RtmpStatusLabel.text = @"RTMP狀態: 未串連";

                break;

            case LIVE_VCSessionStateError:

                _RtmpStatusLabel.text = @"RTMP狀態: 錯誤";

                break;

            default:

                break;

        }

    });

}

6,直播結束,斷開rtmp串連

[[LiveVideoCoreSDK sharedinstance] disconnect];簡單吧,不解釋了。

 

GitHub地址: https://github.com/runner365/LiveVideoCoreSDK

最後,如果覺得代碼對你有協助,請在github中協助“star”,加個小星星。如果有問題,可以在我的問題區提問,歡迎交流。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.