Genvid Ingest のサンプル

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

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

注釈

ストリーミング中に動画の解像度を変更することはサポートされていません。

このサンプルでは、まず Genvid Studio サービスDirectX Cube サンプル のインスタンスを設定します。この 2 つ目のインスタンスを Ingest サーバーに置き換え、そこに OBS Studio (バージョン 20 以降)のローカルインスタンスを接続して、ウェブカメラの 2 つ目のソースを提供します。

クラスタの設定

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

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

  3. Stop All をクリックするとすべてのサービスが停止します。

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

    py ingest.py load
    
  5. Ingest** ジョブが クラスタ UI に存在することを確認します。

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

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

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

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

OBS Studio の設定

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

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

  3. File > Settings をクリックします。

  4. Stream を選択します。

  5. Service フィールドで 「Custom」 を選択します。

  6. Server フィールドに Ingest リンクをペーストします。

  7. 配信サービスStream Key をペーストします。

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

    重要

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

  8. 以下の (推奨) 設定を選択します。

出力 (詳細) ビデオビットレート 2000 ~ 6000 kbps ストリームの品質 (解像度、FPS) に依存します。
エンコーダ x264 または h264
レートコントロール CBR
プロファイル Baseline、Main、High
オーディオビットレート 128 ~ 320 Kbps
オーディオ サンプリングレート 44.1khz または 48khz
チャンネル Mono または Stereo
ビデオ 基本 (キャンバス) 解像度 ゲームと同じ。
出力 (スケール) 解像度 ゲームと同じ。
ダウンスケールフィルタ Lanczos (sharpened scaling, 32 samples)。
一般的な FPS 値 Genvid スタックの設定と同じ FPS (ビデオ配信のフレームレート = 30 または 60)。
詳細 レンダラー Direct3D 11
カラー フォーマット NV12 または I420
YUV カラースペース 601 または 709
YUV カラーレンジ Partial または Full

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

注釈

Genvid スタックは、ジョブを開始する際に「先着順」を原則としています。OBS のストリームを正しく受信するために、OBS からのストリーミング開始前に Ingest ジョブを開始することをお勧めします。

以下の順でジョブを開始します。#、Services #、Studio #、Ingest #、Web #、Open OBS #。ゲームを配信する準備ができたら、ゲームジョブを開始してください。

重要

Studio に OBS ストリームが表示されるまで、ゲームを開始しないでください。

ストリームの構成

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

ストリームのタイミング

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

以下の図は、ゲームを表示する 1 つ目のソースと、解説者のオーディオやビデオを含む 2 つ目のソースをまとめたプロダクションのデプロイを紹介しています。2 番目のソースは、PIP(ピクチャ・イン・ピクチャ)、ボイスオーバー、または編集なしで使用できます。この図は、ディレクターが Genvid Studio で配信を行っていることも示しています。

Game deployement diagram

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

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

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

Source delay adjustment

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

スクリプトリファレンス

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]