
概要 📖 – 映像をネット配信する
Video Stream Out TOPは、入力したテクスチャをエンコードし、ネットワーク映像ストリームとして送出する TOPです。RTSP サーバー・RTMP 送出・SRT 伝送・WebRTC ピアを出力先として、映像と音声をリアルタイムに配信します。
主な用途 🎯
- RTSP サーバーとしての映像ストリーム配信
- YouTube・Twitch への RTMP ライブ配信
- SRT プロトコルでの低遅延な遠隔伝送
- WebRTC ピアへのブラウザ向け映像送出
- 音声付き映像のリアルタイムエンコード配信
データフロー 🔄
入力: テクスチャ (TOP 画像)
↓
エンコード・パケット化処理 (コーデック / プロトコル設定)
↓
出力: ネットワーク映像ストリーム (RTSP / RTMP / SRT / WebRTC)
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Video Stream Out Page 📡
サーバー制御 .server 🔘
Active .active 🔘
– Active (有効化) — サーバーを稼働させるかどうかを切り替えます。
– オフのあいだは、このサーバーが使うポートを占有しません。
配信モード .mode 🎛️
Mode (配信モード) — 配信プロトコルを選択するメニューパラメータ。
| 項目 | 内部名 | 説明 |
|---|---|---|
| RTSP Server | .rtspserver |
RTSP / RTP プロトコルのサーバーとして動作 |
| RTMP Sender | .rtmpsender |
RTMP プロトコルで YouTube / Twitch 等の配信先へ送出 |
| SRT | .srt |
SRT プロトコルで送信先へ伝送 |
| WebRTC | .webrtc |
WebRTC ピアを使って送出 |
接続先設定 .destination 🔗
Network Port .port 🔌
– Network Port (待ち受けポート) — サーバーが待ち受けるポート番号を指定します。
– 複数の Video Stream Out TOP が、Stream Name を一意にすれば同じポートを共有できます。
Stream Name .streamname 🏷️
– Stream Name (ストリーム名) — このノードのストリーム名を指定します。
– URL の ipaddress:port のあとの / 以降に付く名前になります。
Multi-Cast .multicast 📶
– Multi-Cast (マルチキャスト) — RTSP サーバーが映像をユニキャストとマルチキャストのどちらの UDP パケットで送るかを切り替えます。
Destination URL .url 🎯
– Destination URL (送信先 URL) — SRT / RTMP ストリームの送信先 URL を指定します。
– RTMP の場合は {サービス URL}/{ストリームキー} の形式で、利用する配信サービスごとに正しい URL を確認します。
Force IDR .forceidr 🔑
– Force IDR (キーフレーム強制) — デバッグ用に、すべてのクライアントへ送る新しい映像キーフレームを強制生成します。
– クライアントが正しい画像を受け取れないときの復旧手段です。
FPS .fps 🎞️
– FPS (フレームレート) — 映像を送出するフレームレートを指定します。
映像コーデック .videocodec 🎬
Video Codec .videocodec 🎬
– Video Codec (映像コーデック) — ストリームのエンコードに使うコーデックを選択します。
– すべてのコーデックがすべての配信プロトコルに対応するわけではありません。
H.264 プロファイル .profile 📊
Profile (H.264 プロファイル) — フレームのエンコードに使う H.264 プロファイルを選択します。デコーダによっては特定のプロファイルしか対応しません。
| 項目 | 内部名 | 説明 |
|---|---|---|
| Baseline | .baseline |
互換性を重視した基本プロファイル |
| Main | .main |
標準的なプロファイル |
| High | .high |
高画質向けのプロファイル |
エンコード品質 .quality ✨
Quality (エンコード品質) — エンコードの品質レベルを選択します。遅延と画質のバランスを決めます。
| 項目 | 内部名 | 説明 |
|---|---|---|
| Low-Latency, Low Quality | .lowlatencylow |
低遅延・低画質 |
| Low-Latency, Medium Quality | .lowlatencymedium |
低遅延・中画質 |
| Low-Latency, High Quality | .lowlatencyhigh |
低遅延・高画質 |
| High-Latency, Low Quality | .highlatencylow |
高遅延・低画質 |
| High-Latency, High Quality | .highlatencyhigh |
高遅延・高画質 |
| High-Latency, Ultra High Quality | .highlatencyultrahigh |
高遅延・超高画質 |
キーフレーム設定 .keyframe 🔑
Keyframe Interval .keyframeinterval 🔑
– Keyframe Interval (キーフレーム間隔) — エンコーダのキーフレーム間隔をフレーム単位で設定します。
– GOP 長と IDR 間隔の両方を設定し、各 IDR (キー) フレームのあいだに入るフレーム数を制御します。
Max B-Frames .maxbframes 🔁
– Max B-Frames (最大 B フレーム数) — キーフレームの間に入る双方向フレームの最大数を指定します。
– 増やすと遅延は増えますが、必要な帯域は減ります。
Intra-Refresh Period .intrarefreshperiod ♻️
– Intra-Refresh Period (イントラリフレッシュ周期) — 大きなキーフレーム 1 枚ではなく、複数フレームへ少しずつ適用する段階的キーフレームの周期をフレーム数で指定します。
Intra-Refresh Length .intrarefreshlength 📏
– Intra-Refresh Length (イントラリフレッシュ長) — イントラリフレッシュを分散させるフレーム数を指定します。
ビットレート方式 .bitratemode 📈
Bitrate Mode (ビットレート方式) — 固定 (CBR) と可変 (VBR) のビットレート方式を選択します。多くの配信サービスは固定方式を推奨します。
| 項目 | 内部名 | 説明 |
|---|---|---|
| Constant (CBR) | .constant |
固定ビットレート |
| Variable (VBR) | .variable |
可変ビットレート |
| Constant HQ (CBR) | .constanthq |
高品質の固定ビットレート |
| Variable HQ (VBR) | .variablehq |
高品質の可変ビットレート |
ビットレート量 .bitrate 📉
Average Bitrate (Mb/s) .avgbitrate 📊
– Average Bitrate (Mb/s) (平均ビットレート) — エンコードの目標ビットレートを Mb/s (メガビット毎秒) で指定します。
Max Bitrate (Mb/s) .maxbitrate 📈
– Max Bitrate (Mb/s) (最大ビットレート) — エンコードの最大ビットレートを Mb/s で指定します。
Num H264 Slices per Frame .numslices 🍰
– Num H264 Slices per Frame (フレームあたりのスライス数) — 各 H.264 フレームを分割するスライス数を指定します。
– 複数スライスを同時にデコードできるデコーダでは、1 より大きくすると効率よく動作します。
Mux Rate (Mb/s) .forcemuxrate 🧵
– Mux Rate (Mb/s) (多重化レート) — 多重化レートを Mb/s で指定します。
VBV Buffer Size (Mb) .forcevbvbufsize 🧮
– VBV Buffer Size (Mb) (VBV バッファ容量) — VBV バッファの容量を Mb で指定します。
RTMP Buffer Size (S) .forcertmpbufsize ⏳
– RTMP Buffer Size (S) (RTMP バッファ秒数) — RTMP バッファの長さを秒で指定します。
音声入力 .audiochop 🎵
Audio CHOP .audiochop 🎵
– Audio CHOP (音声ソース) — 映像と一緒に送るタイムスライス済みの音声ソースを指定します。
– プロトコルや音声コーデックによっては、Resample CHOP で 44100 または 48000Hz へ変換が必要になります。
音声コーデック .audiocodec 🔊
Audio Codec (音声コーデック) — 音声を圧縮するコーデックを選択します。
| 項目 | 内部名 | 説明 |
|---|---|---|
| MP3 | .mp3 |
非可逆の圧縮コーデック。2 チャンネルまで対応 |
| AAC | .aac |
非可逆の音声圧縮コーデック。2 チャンネルまで対応 |
| Opus | .opus |
非可逆の音声圧縮コーデック |
音声ビットレート .audiobitrate 🎚️
Audio Bit Rate (音声ビットレート) — 音声のエンコードに使うビットレートを選択します。
| 項目 | 内部名 | 説明 |
|---|---|---|
| 96 kb/s | .b96 |
96 kb/s |
| 128 kb/s | .b128 |
128 kb/s |
| 192 kb/s | .b192 |
192 kb/s |
| 256 kb/s | .b256 |
256 kb/s |
| 320 kb/s | .b320 |
320 kb/s |
無音ストリーム .includesilentaudio 🔇
Include Silent Audio Stream (無音ストリーム付加) — 配信サービスによっては音声ストリームの同梱が必須なため、実際の音声がないときに無音の音声ストリームを付加します。
| 項目 | 内部名 | 説明 |
|---|---|---|
| Automatic | .automatic |
自動で判定して付加 |
| On | .on |
常に無音ストリームを付加 |
| Off | .off |
無音ストリームを付加しない |
フレーム別情報 .perframemetadata 🗂️
Per-Frame Metadata CHOP / DAT .perframemetadata 🗂️
– Per-Frame Metadata CHOP / DAT (フレーム別メタデータ) — この OP からのメタデータを映像ストリームの各フレームと一緒に送ります。
– 受信側では Video Stream In TOP に対する Info CHOP / Info DAT でこのデータを受け取れます。
WebRTC Page 🛰️
WebRTC 送出 .webrtc 🛰️
WebRTC DAT .webrtc 📡
– WebRTC DAT (WebRTC ピア指定) — 映像ストリームを送る WebRTC DAT (ピア) を設定します。
– 設定すると WebRTC Connection の候補メニューが自動で埋まります。
WebRTC Connection .webrtcconnection 🔗
– WebRTC Connection (WebRTC 接続) — WebRTC のピア間接続を選択します。
– 選択すると WebRTC Track の候補メニューが自動で埋まります。
WebRTC Video Track .webrtcvideotrack 🎞️
– WebRTC Video Track (映像出力トラック) — WebRTC のピア間接続に含まれる映像出力トラックを選択します。
WebRTC Audio Track .webrtcaudiotrack 🎧
– WebRTC Audio Track (音声出力トラック) — WebRTC のピア間接続に含まれる音声出力トラックを任意で選択し、映像と一緒に送ります。
実践アイデア 💡
Example 1: Twitch へのライブ配信 📺
Render TOP → Video Stream Out TOP (RTMP Sender) → Twitch
TouchDesigner でレンダリングした映像を Video Stream Out TOP の RTMP Sender モードで Twitch などの配信サービスへ送出する基本フローです。リアルタイム生成のビジュアルをそのままライブ配信できます。
- Render TOP などの映像を Video Stream Out TOP に入力
- Mode を RTMP Sender に設定
- Destination URL に {サービス URL}/{ストリームキー} 形式で配信先を入力
- Active をオンにして配信を開始
Example 2: 音声付き映像の送出 🎵
Render TOP → Video Stream Out TOP (Audio CHOP) → 配信先
映像に音声を重ねて配信する構成です。Resample CHOP で音声をサンプルレート変換してから Video Stream Out TOP の Audio CHOP に渡し、コーデックとビットレートを選んで送出します。
- 音声ソースを Resample CHOP で 44100 または 48000Hz に変換
- 変換した音声を Video Stream Out TOP の Audio CHOP に指定
- Audio Codec と Audio Bit Rate を選択
- Active をオンにして音声付き映像を送出
Example 3: RTSP サーバーで社内配信 📡
Render TOP → Video Stream Out TOP (RTSP Server) → 受信クライアント
Video Stream Out TOP を RTSP サーバーとして動かし、同一ネットワーク内のクライアントへ映像を配信する構成です。ポートとストリーム名を決めれば複数ストリームを 1 ポートで共有できます。
- Mode を RTSP Server に設定
- Network Port と Stream Name を指定
- Active をオンにしてサーバーを起動
- 受信側で ipaddress:port/streamname の URL に接続
関連オペレータ 🔗
類似機能OP 🔍
- NDI Out TOP — 同一 LAN 内へ NDI 映像として送出
- Movie File Out TOP — 映像をローカルファイルとして書き出す
- Video Device Out TOP — ローカル接続の出力機器へ映像を送る
組み合わせ推奨OP 🔄
- Render TOP — 配信する映像を 3D シーンからレンダリング
- Null TOP — 中継点として配信前の映像を渡す
- Video Stream In TOP — 送出した映像を受信側で取り込む
前処理・後処理TOP 🎯
- 前処理: Render TOP、Level TOP、Null TOP
Info情報 📊
Video Stream Out TOP は TOP 共通の情報取得に対応しています。
TOP固有情報 🖼️
resx: TOP の出力解像度 X (ピクセル単位)resy: TOP の出力解像度 Y (ピクセル単位)aspectx: アスペクト比 Xaspecty: アスペクト比 Ydepth: 3D テクスチャ / テクスチャ配列の深度 (2D テクスチャでは 1)gpu_memory_used: TOP が消費している GPU メモリ量 (MB 単位)
汎用オペレータ情報 🔄
total_cooks: プロセス開始からのクック回数cook_time: 最後のクック時間 (ミリ秒)cook_frame: 最後にクックされたフレーム番号warnings: 警告数errors: エラー数
解像度情報 📐
width / height: 配信している映像テクスチャの幅と高さ (ピクセル)aspect: 映像のアスペクト比
配信状態 📶
接続クライアント: サーバーへ接続しているクライアントの状態ビットレート: 実際に送出している映像・音声のビットレート
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: 配信先に映像が届かない
✅ Solution:
Activeがオンになっているか確認Modeが配信先のプロトコルと一致しているか確認- RTMP の場合は
Destination URLが {サービス URL}/{ストリームキー} 形式か確認
❌ Problem: 映像にノイズや乱れが出る
✅ Solution:
Force IDRで新しいキーフレームを強制送信して復旧を試すAverage Bitrate (Mb/s)とMax Bitrate (Mb/s)を回線に合わせて調整Qualityを低遅延寄りの設定に変更して負荷を下げる
❌ Problem: 配信サービスで音声が認識されない
✅ Solution:
Audio CHOPをResample CHOPで 44100 または 48000Hz に変換してから指定Audio Codecがサービスの対応形式か確認Include Silent Audio Streamを On にして無音ストリームを付加
参考資料 📚
その他 🔗
- TouchDesigner Wiki — Category:TOPs
- TouchDesigner Wiki — Pixel Formats 解説
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

