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」 |
ストリームのタイミング¶
このセクションでは、複数のソースを運用で使用している場合のオーディオ/ビデオストリームのタイミングについて説明します。
以下の図は、ゲームを表示する 1 つ目のソースと、解説者のオーディオやビデオを含む 2 つ目のソースを含む運用のデプロイを紹介しています。2 番目のソースは、PIP、ボイスオーバー、または編集なしで使用できます。この図は、ディレクターが Genvid Studio で普及を促していることも示しています。
ストリームの処理によって、ストリームに遅延が発生する場合があります。この遅延は主にストリームのエンコード、デコード、送信に起因するものです。ゲームのプレイヤーとディレクターとの間の遅延は、通常、約 15 フレーム、つまり 0.5 秒です。コメンテータとディレクターの間の遅延は約 3 秒です。
Studio website の Sources セクションのコントロールを使用して、遅延を調整できます。