2022年05月13日

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

※2020年の記事です。

 

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

ガイドブックダウンロード

【すぐ読める!ガイドブック】ビデオ通話・ライブ配信SDK「Agora」

【大充実】通話・配信SDK「Agora」ガイドブック

通話・配信サービス開発や、配信技術のリプレイスを検討中の方、必見の内容です。
Agora SDKの特徴から活用例まで徹底解説!

無料ダウンロード
ブイキューブ

執筆者ブイキューブ

Agoraの日本総代理店として、配信/通話SDKの提供だけでなく、導入支援から行い幅広いコミュニケーションサービスに携わっている。

関連記事

先頭へ戻る