TURN サーバとの連携 | Unity Render Streaming | 2.0.2-preview
docs.unity.cn
    Show / Hide Table of Contents

    TURN サーバとの連携

    Unity Render Streaming でストリーミングが正しく動作しない場合、まずは トラブルに関する質問 を参照してください。 もしファイアウォールの問題であった場合は、ファイアウォールの設定を変更するか、 TURN サーバ を利用する必要があります。

    TURN(Traversal Using Relay around NAT)とは、NAT やファイアウォールを超えて通信を行うための通信プロトコルです。TURN を利用するには、NAT の外側に TURN サーバ を設置する必要があります。

    このドキュメントでは、Unity Render Streaming を TURN サーバと連携する方法について説明します。

    インスタンスの設定

    TURN サーバを実現するソフトウェアとして coturn を利用します。coturn は TURN サーバのオープンソース実装です。 coturn を GCP インスタンス上で実行する方法について説明します。

    apt コマンドで coturn をインストールするため、インスタンスイメージには ubuntu-minimal-1604-xenial-v20190628 を利用しています。coturn がサポートしているディストリビューションであれば問題ありません。 coturn の詳細については、 coturn の ドキュメント を確認してください。

    Firewall rules の設定

    TURN サーバが利用するポートを公開する必要があるので、ファイアウォールの設定を追加します。

    Protocol PORT
    TCP 32355-65535, 3478-3479
    UDP 32355-65535, 3478-3479

    TURN firewall rules

    coturn のインストール

    GCPインスタンスに ssh でログインしてください。 coturn をインストールします。

    sudo apt install coturn
    

    coturn を TURN サーバとして利用するため、デーモンで起動するときの設定を変更します。 以下のファイルを編集します。

    sudo vim /etc/default/coturn
    

    以下の行を追加します。

    TURNSERVER_ENABLED=1
    

    次に、coturn の設定ファイルを編集します。

    sudo vim /etc/turnserver.conf
    

    以下の行のコメントを外して、各自の内容に応じて記述します。

    # 外部のピアに教える TURN サーバーが待ち構えるIPアドレス
    external-ip=10.140.0.4
    
    # 認証を有効化する
    lt-cred-mech
    
    # ユーザ名とパスワードを指定
    user=username:password
    
    # レルムの設定
    realm=yourcompany.com
    
    # ログファイルの設定
    log-file=/var/tmp/turn.log
    

    設定完了後、coturn サービスを再起動します。

    sudo systemctl restart coturn
    

    導通確認

    coturn の設定を完了したら、TURN サーバの動作を確認するためログを監視します。

    tail -f /var/tmp/turn_xxxx-xx-xx.log
    

    webrtc サンプル を利用して TURN サーバへの接続を行います。以下のように設定して Add Server ボタンを押します。

    Parameter Example
    STUN or TURN URI turn:xx.xx.xx.xx:3478?transport=tcp
    TURN username username
    TURN password password

    <img src="../images/turn-connection-testing.png" width=600 align=center>

    Gather candidates ボタンを押すと、リストに通信経路候補が表示されます。TURN サーバ側にもログが出力されていることを確認してください。

    ブラウザ側の変更

    ブラウザ側は video-player.js の config.iceServers の設定を変更します。

    config.iceServers = [{
        urls: ['stun:stun.l.google.com:19302']
        }, {
        urls: ['turn:xx.xx.xx.xx:3478?transport=tcp'], 
        username: 'username', 
        credential: 'password'
      }
    ];
    

    Unity 側の変更

    Render Streaming インスペクタの Ice Servers に TURN サーバの設定を追加してください。

    TURN Render Streaming inspector

    Back to top Copyright © 2020 Unity Technologies
    Generated by DocFX