チュートリアル

概要

このチュートリアルでは、Sora に組み込まれているデモ機能を動かして、ひととおり使ってみるところまでを説明します。

チュートリアルの注意点

注意

繋がらないという問い合わせのほとんどは UDP のポート開放忘れです。必ずポートを開放してください。

  • このチュートリアルでは、リバースプロキシとしての Nginx や HTTPS の知識を必要とします

  • Sora は TCP と UDP の両方を利用します

    • TCP はデフォルトであれば 3000 番と 5000 番を利用します

    • UDP はデフォルトであればエフェメラルポートの範囲を利用します

  • Sora のデモ機能は Sora に組み込まれているものを利用して下さい

  • Sora のデモ機能は HTTPS 非対応のため、Nginx をリバースプロキシとして利用して、TLS 終端を行ってから Sora に繋ぐ必要があります

  • Sora のシグナリングは WebSocket over TLS 非対応のため、Nginx をリバースプロキシとして利用して、 TLS 終端を行い Sora のシグナリングへ繋ぐ必要があります

Sora の展開

tar.gz で圧縮されていますので、展開して下さい。

$ tar xfz sora-<version>-<os>.tar.gz

設定ファイル

設定ファイルは Sora を展開した sora-<version>/etc/sora.conf にあります。まずはデモ機能を動作させるまでの最低限の設定を行います。

# はコメントになっている部分ですので、設定する項目がコメントになっている場合は # を削除して設定項目を有効にしてください。

  1. ライセンスファイルの指定

    • ライセンスファイルを etc/ において、cp コマンドを利用して license.json に変更して下さい。

  2. デモ機能の有効化

    • Sora には簡単に検証してもらうためのデモ機能を組み込んでいます。 demo 項目の # を削除して設定を有効にし、 加えて、設定値に true を指定して Sora に組み込まれているデモ機能を有効化してください。

## ライセンスファイルを指定してください
## この設定はオプションで、デフォルトは "etc/license.json" です
# license_file = etc/license.json

## デモ機能を有効にするかどうかを指定してください
## オプションでデフォルト false です
demo = true

他の設定はここでは不要です。

起動

設定が終わったらサーバーを起動します。

$ sora-<version>/bin/sora daemon

停止

停止したい場合は以下で可能です

$ sora-<version>/bin/sora stop

シグナリングへの HTTPS の適用

HTTPS (WebSocket over TLS を含む) の適用は必ず行ってください。HTTPS への接続以外はサポート対象外となります

ブラウザで WebRTC の機能の一つである getUserMedia を利用する場合は HTTPS が必須となります。 ただし、Sora 自体は HTTPS 非対応のため、Sora の前段にリバースプロキシとして Nginx を設置して TLS 終端を行ってください。

Nginx の location ディレクティブの設定については Nginx を参考にして設定をお願いします。

注意

Nginx の設定に関する質問については Sora のサポート範囲外となりますのでご了承下さい。

証明書については Let's Encrypt - Free SSL/TLS Certificates の利用をおすすめします。

注意

Let's Encrypt に関する質問については Sora のサポート範囲外となりますのでご了承下さい。

リバースプロキシとしての Nginx の役割:

// デモ機能の静的ファイルの場合
クライアント -> <HTTPS:443> -> Nginx -> <HTTP:5000> -> Sora

// シグナリングの場合
クライアント -> <WebSocket over TLS:443> -> Nginx -> <WebSocket:5000> -> Sora

デモ機能を利用してみる

Sora に組み込まれているデモ機能の使い方を説明します。 Sora に組み込まれているデモ機能では Sora の持っている一通りの配信機能を試すことができます。

ブラウザで https://<設定したドメイン>/ にアクセスして以下のような画面が表示されれば成功です。

https://i.gyazo.com/d36ea3af6b4127cc5e36b699f89dd2c6.png

デモ機能が動作するブラウザ一覧

以下の最新のブラウザで動作します。

  • Google Chrome

  • Mozilla Firefox

  • Apple Safari

  • Microsoft Edge

ただし一部の機能は特定のブラウザでのみ動作します。

片方向

1 -> N の片方向の配信のデモです。

  • 片方向送信のみ

    • sendonly.html

  • 片方向受信のみ

    • recvonly.html

sendonly.html を開いて、 connect を押してください。

以下のバルーンが表示されれば成功です。

https://i.gyazo.com/d7c293e20f90c6de1e62c4c826cfe59b.png

recvonly.html を複数のタブやウィンドウで接続してみることで 1 -> N の挙動を確認できます。

https://i.gyazo.com/ac7db237496c36bf7704a3485dd7f18c.jpg

双方向

ビデオ会議システムなどで利用されるような双方向での配信のデモです。 受信だけ、送信だけでの利用も可能です。

  • 双方向送受信

    • multi_sendrecv.html

  • 双方向送信のみ

    • multi_sendonly.html

  • 双方向受信のみ

    • multi_recvonly.html

multi_sendrecv.html を開いて、 connect を押して、 その後、別のブラウザやタブで multi_sendrecv.html を開いて、 connect を押して下さい。

注意

以下はわかりやすいようにそれぞれでカメラを変更しています。

https://i.gyazo.com/bb866c2e98086783533a25c88bd6fea6.jpg

片方向サイマルキャスト

サイマルキャストとは、配信側が同じ映像を複数のエンコードで配信する仕組みです。

1 -> N で、視聴者が映像を選択できるデモです。

送信は Chrome と Edge と Safari で動作します

  • サイマルキャスト送信のみ

    • simulcast_sendonly.html

  • サイマルキャスト受信のみ

    • simulcast_recvonly.html

simulcast_sendonly.html を開いて、 connect を押して下さい。

https://i.gyazo.com/c0015a8ee792b85c34f3665fde6a4a40.jpg

simulcast_recvonly.html を複数のタブやウィンドウで開いて、 接続時に simulcastRid でいろいろな映像を選択してみてください。

同じ映像が複数のエンコードで配信されていることを確認できます。

注意

以下はわかりやすいようにブラウザを3つ開いて全ての映像を受信しています。

https://i.gyazo.com/634e1895d22140ad351df80834cf5e41.jpg

双方向マルチキャスト

配信側がサイマルキャストを利用しているため、視聴する映像を選択できる双方向のデモです。

送信は Chrome と Edge と Safari で動作します

  • 双方向サイマルキャスト送受信

    • multi_simulcast_sendrecv.html

  • 双方向サイマルキャスト送信のみ

    • multi_simulcast_sendonly.html

  • 双方向サイマルキャスト受信のみ

    • multi_simulcast_recvonly.html

次のステップ

  • sora.confipv4_address にサーバーの IP アドレスを指定してください

本番稼働に向けて をお読みください。

また、 Sora はいろいろな機能を持っていますので、一通りドキュメントをご確認下さい。

トラブルシューティング

タイムアウトが起きてつながらない場合

重要

OS の設定やファイアウォールで UDP の通信ができない場合は接続に失敗します。

Sora が利用する UDP のポートの範囲は通常 32768 から 60999 です。この範囲の通信を許可にしてみてください。

それでもうまく繫がらない場合

サーバーの IPv4 アドレスを ipv4_address に指定して、 ipv6false にしてみてください。

## ライセンスファイルを指定してください
## この設定はオプションで、デフォルトは "etc/license.json" です
# license_file = etc/license.json

## サーバーで利用する IPv4 アドレスを指定してください
## 指定が無い場合は、自動で見つけたアドレスを利用します
ipv4_address = 192.0.2.10

## デモ機能を有効にするかどうかを指定してください
## オプションでデフォルト false です
demo = true

注釈

Amazon EC2 インスタンス等のようなパブリック IP アドレスとプライベート IP アドレスが異なる環境では、 ブラウザからアクセス可能な IP アドレス(パブリック IP アドレス)を ipv4_address に設定してください。

よくある問題

ここでは利用しているドメインを仮に example.com としています。

  • https://example.com/ にアクセスできない

    • Nginx の設定が間違っている可能性があります。Nginx の設定を見直して下さい

  • https://example.com/ にアクセスしても 404 になる

    • Sora の組み込みのデモ機能が有効になっていない可能性があります

      • sora.conf の設定でデモ機能が有効になっているか確認して下さい

      • http://example.com:5000/ にアクセスしてデモ機能が有効になっているかを確認して下さい

    • Sora が利用するポートを他のプロセスが利用していないかを確認してください

      • Sora が利用したいポートを他のプロセスが既に利用しているために、Sora が起動していない可能性があります

それでも繋がらない場合

お問い合わせ前に以下を確認してください

  • チュートリアル以外のことはやっていないかどうかを確認して下さい

  • ファイアウォールの設定を全て無効にして確認してください

  • IPv6 アドレスを無効にして確認してください

  • Sora では基本的にロードバランサーを利用することはできませんので、ロードバランサーなしで確認してください

全てを確認しても繋がらない場合はお問い合わせください。

その際に以下の情報を 必ず お送りください。

  • どんな環境でチュートリアルを実行しているか

  • Sora のバージョン

  • Sora の設定ファイルである sora.conf

  • log フォルダ以下すべてを tar.gz にて圧縮してお送りください

    • 容量が 1 メガバイトを超える場合は事前にご連絡ください。アップローダーをご提供します

  • 繋がらなかったデモ機能

    • たとえば sendonly など

  • 繋がらなかったブラウザを利用している OS とバージョン

    • たとえば macOS Big Sur 11.4Windows 10 2004 など

  • 繋がらなかったブラウザの種類とバージョン

    • たとえば Chrome 91.0.4472.77 など

それ以外にも可能な限り、こちらがサポートをするために必要そうな情報をお送りください。

© Copyright 2021, Shiguredo Inc Created using Sphinx 4.2.0