テレワークで日本を変える|Web会議・テレビ会議(TV会議)のブイキューブ

テレワークで日本を変える|テレビ会議(TV会議)・Web会議・電話会議のブイキューブ

agora.ioを利用してrtmpサーバーへpushする

  • iOS
  • rtmp
  • Swift
  • Agora.io

agora.ioのSDKでは独自プロトコルで映像を配信していますが、既存のRTMPサーバーへのpushも並行して配信できます。
OBSスタジオやWireCastのような配信アプリを作成する事が可能です。

データフロー

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

開発環境

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サーバーの機能によります)

Agora SDK イメージ
Agora SDK

大規模・安価・すぐに使える
ライブ配信・ビデオ通話・音声通話SDK

 

先頭へ戻る