Genvid Ingest のサンプル

Genvid Ingest のサンプルをもって、 gvencode を用いたプロジェクトに RTMP Ingest サーバーを追加する方法を紹介していきます。RTMP Ingest サーバーを追加することで、外部 A/V ソースを使用できるようになります。

オーディオおよびビデオのストリームを追加できるのは、コンポジション (composition) だけであることに注意してください。Ingest サーバーは、データストリームや通知を受け取ったり、コマンドやイベントを送信することはできません。

このサンプルでは、まずは Genvid Studio サンプル のサンプルを使用して、 DirectX キューブサンプル サンプルの 2 つ目のインスタンスを Ingest サーバーと OBS Studio (バージョン 20 以降) のローカルインスタンスに変更して接続を行い、Web カメラの映像を 2 つ目のソースにします。

クラスタの設定

Genvid Studio サンプル の指示に従って、すべてのサービスを開始します。正常に動作することを確認したら、 サービスを停止 します。

次に、Ingest 設定を読み込みます。

py ingest.py load

Cluster UI を使用して、Ingest ジョブが存在することを確認します。 Start All ボタンをクリックしてサービスを再スタートします。 Ingest のリンクが青色に変わったら、右クリックして Copy link address を選択します。

OBS の構成

OBS Studio のセットアップ:

  • OBS Studio をダウンロードしてインストールします。
  • 設定を行い、ストリーミングを行うシーンを選択します。
  • Settings で Stream Parameters パネルを選択します。
  • Custom Streaming Server を選択してコピーした URL を貼り付けます。
    (rtmp:// で始まる URL です。)
  • ブラウザで URL に unsafe- が追加された場合は、削除してください。
  • ビデオ設定が出力設定と一致していることを確認します。
    (DirectX サンプルのデフォルトは 1280x720 @ 30 FPS です)

以上でストリーミングを開始できます。

ストリームのコンポジション (合成)

Cluster UI に戻り、 Studio リンクをクリックします。これでストリームは 2 番目のソースになりました。配信ストリームを処理するための情報については、 Studio website を確認してください。

スクリプトリファレンス

Ingest sample script

usage: ingest.py [-h] [--loglevel {DEBUG,INFO,WARNING,ERROR}] [--logformat LOGFORMAT] [-c CLUSTER_ID]
                 {env,load,unload} ...

Positional Arguments

command 使用するコマンド: env, load, unload

Named Arguments

--loglevel

使用するコマンド: DEBUG, INFO, WARNING, ERROR

スクリプトのログレベルを設定する

--logformat スクリプトのログ形式を設定する
-c, --cluster_id
 

クラスタ ID。コマンドラインで設定されていない場合は、環境変数 GENVID_CLUSTER_ID があればそれを使用します。それ以外の場合、デフォルトは 『local』 です。

デフォルト: 「local」

Sub-commands:

env

環境変数を出力する

ingest.py env [-h]

load

指定したターゲットの定義をクラウドに読み込む

ingest.py load [-h]

unload

指定したターゲットの定義をクラウドにアンロードする

ingest.py unload [-h]

ストリームのタイミング

このセクションでは、複数のソースを運用で使用している場合のオーディオ/ビデオストリームのタイミングについて説明します。

以下の図は、ゲームを表示する 1 つ目のソースと、解説者のオーディオやビデオを含む 2 つ目のソースを含む運用のデプロイを紹介しています。2 番目のソースは、PIP、ボイスオーバー、または編集なしで使用できます。この図は、ディレクターが Genvid Studio で普及を促していることも示しています。

Game deployement diagram

図 80 ビデオゲームとコメンテータを配信にデプロイする

ストリームの処理によって、ストリームに遅延が発生する場合があります。この遅延は主にストリームのエンコード、デコード、送信に起因するものです。ゲームのプレイヤーとディレクターとの間の遅延は、通常、約 15 フレーム、つまり 0.5 秒です。コメンテータとディレクターの間の遅延は約 3 秒です。

Studio websiteSources セクションのコントロールを使用して、遅延を調整できます。

Source delay adjustment

図 81 ソース遅延調整コントロール