Genvid Ingest のサンプル

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

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

注釈

ライブ配信中に動画の解像度を変更することはサポートされていません。

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

クラスタの設定

  1. Genvid Studio サンプル の指示に従って、すべてのサービスを開始します。

  2. すべて適切に動作することを確認してください。

  3. Stop サービスを停止 を参照。

  4. Ingest 設定を読み込みます。

    py ingest.py load
    
  5. Cluster UI を使用して Ingest ジョブが存在することを確認します。

  6. Start All ボタンをクリックしてサービスを再開します。

  7. Ingest リンクが青色に変わるまで待ちます。

  8. Ingest リンクを右クリックして Copy link address を選択します。

    OBS の設定にはリンクアドレスが必要です。

OBS Studio の設定

  1. OBS Studio をダウンロードしてインストールします。

  2. 設定を行い、ストリーミングを行うシーンを選択します。

  3. SettingsAdvanced Parameters パネルを選択します。

  4. ビデオカラーフォーマットが NV12, I420, I444 のいずれかであることを確認します。

    推奨: NV12

  5. ビデオカラースペースが 601, 709 のいずれかであることを確認します。

    推奨: 601

  6. ビデオカラーレンジが Partial, Full のいずれかであることを確認します。

    推奨: Partial

  7. SettingsStream Parameters パネルを選択します。

  8. Custom Streaming Server を選択します。

  9. Cluster UI からコピーしてきた URL をペーストします。

    rtmp:// で始まる URL です。

    重要

    ブラウザで アドレスに unsafe- が追加された場合は、URL から削除してください。

  10. ビデオ設定が出力設定と一致していることを確認します。

    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 ソース遅延調整コントロール