LoginSignup
2
3

More than 3 years have passed since last update.

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

Last updated at Posted at 2018-11-22

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

データフロー

名称未設定.png
図中の黒枠で囲んだ部分か今回の主な実装になります。

開発環境

macOS Mojave 10.14.1
Xcode 10.1
ios 12.1
AgoraVideoSDK for iOS 2.3.1

ソースコード

Githubに公開しています
元のソースは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でスマホの映像が描画されています。
スクリーンショット 0030-11-22 13.34.51.png
(視聴側のプロトコルはRTMPサーバーの機能によります)

最後に

agora.ioに関するお問い合わせはこちらから
スクリーンショット 0001-08-15 13.41.56.png

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3