Agora Go Real

{{ page_meta.name }}|{{ group.public_title }}|{{ site_settings.logo_alt }}

作成者: ブイキューブ|May 13, 2022 5:35:37 AM

 

データフロー

図中の黒枠で囲んだ部分か今回の主な実装になります。

開発環境

macOS Mojave 10.14.1
Xcode 10.1
ios 12.1
AgoraVideoSDK for iOS 2.3.1

ソースコード

元のソースはSDKに内包されているサンプルプロジェクト(OpenLive-iOS)になります。

実装内容

以下のコードを任意のタイミングで実行します。

LiveRoomViewController.swift
//描画サイズ,ビットレート,フレームレート等の設定
    let transcoding = AgoraLiveTranscoding()
    transcoding.size = CGSize(width: 720, height: 640)
    transcoding.videoBitrate = 1024
    transcoding.videoFramerate = 15
    transcoding.lowLatency = true
    transcoding.backgroundColor = UIColor .white
    
    //配信uid,映像表示サイズ/位置等の設定
    let localLayout = AgoraLiveTranscodingUser()
    localLayout.uid = 1000;//Channelに接続した時のuid
    localLayout.rect = CGRect(x:0, y:0, width:360, height:640);
    localLayout.zOrder = 1;
    localLayout.alpha = 1;
    transcoding.transcodingUsers = [localLayout]
    
    rtcEngine.setLiveTranscoding(transcoding)
    
    //サーバーへの配信開始            
    rtcEngine.addPublishStreamUrl("rtmp://[SERVER]/[APP]/[STREAM]",transcodingEnabled: true)
    

出力

rtmp or HLSのプレイヤー上で720x640の領域内に360x640でスマホの映像が描画されています。

(視聴側のプロトコルはRTMPサーバーの機能によります)