Genvid Ingest のサンプル¶
Genvid Ingest のサンプルをもって、 gvencode を用いたプロジェクトに RTMP Ingest サーバーを追加する方法を紹介していきます。RTMP Ingest サーバーを追加することで、外部 A/V ソースを使用できるようになります。
In This Section
オーディオおよびビデオのストリームを追加できるのは、コンポジションだけであることに注意してください。Ingest サーバーは、データストリームや通知を受け取ったり、コマンドやイベントを送信することはできません。
注釈
ストリーミング中に動画の解像度を変更することはサポートされていません。
このサンプルでは、まず Genvid Studio サービス に DirectX Cube サンプル のインスタンスを設定します。この 2 つ目のインスタンスを Ingest サーバーに置き換え、そこに OBS Studio (バージョン 20 以降)のローカルインスタンスを接続して、ウェブカメラの 2 つ目のソースを提供します。
クラスタの設定¶
Genvid Studio サービス の指示に従って、すべてのサービスを開始します。
すべて適切に動作することを確認してください。
Stop All をクリックするとすべてのサービスが停止します。
Ingest 設定を読み込みます。
py ingest.py load
Ingest** ジョブが クラスタ UI に存在することを確認します。
Start All ボタンをクリックしてサービスを再開します。
Ingest リンクが青色に変わるまで待ちます。
Ingest リンクを右クリックして Copy link address を選択します。
OBS の設定にはリンクアドレスが必要です。
OBS Studio の設定¶
OBS Studio をダウンロードしてインストールします。
設定を行い、ストリーミングを行うシーンを選択します。
File > Settings をクリックします。
Stream を選択します。
Service フィールドで 「Custom」 を選択します。
Server フィールドに Ingest リンクをペーストします。
配信サービス の Stream Key をペーストします。
rtmp://
で始まる URL です。重要
ブラウザでアドレスに
unsafe-
が追加された場合は、URL から削除してください。以下の (推奨) 設定を選択します。
出力 (詳細) | ビデオビットレート | 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 で配信を行っていることも示しています。
ストリームの処理によって、ストリームに遅延が発生する場合があります。この遅延は主にストリームのエンコード、デコード、送信に起因するものです。ゲームのプレイヤーとディレクターとの間の遅延は、通常、約 15 フレーム、つまり 0.5 秒です。コメンテータとディレクターの間の遅延は約 3 秒です。
Studio website の Sources セクションのコントロールを使用して、遅延を調整できます。
スクリプトリファレンス¶
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」 |