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 で配信を行っていることも示しています。

ゲームのデプロイ解説図

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

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

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

ソース遅延調整

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

スクリプトリファレンス

Ingest sample script

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

Positional Arguments

command

Possible choices: load, unload

Named Arguments

--loglevel

Possible choices: DEBUG, INFO, WARNING, ERROR

Set the script log level

--logformat

Set the script log format

-c, --cluster_id

The cluster id. If not set with the command line, uses the environment variable GENVID_CLUSTER_ID if it exists. Otherwise defaults to 'local'

Default: "local"

Sub-commands

load

Load the specified target definition in the cloud

ingest.py load [-h]

unload

Unload the specified target definition in the cloud

ingest.py unload [-h]