
概要 📖 – ネットワーク経由の音声ストリーム送信
Audio Stream Out CHOPは、入力された音声 CHOP を RTSP または WebRTC でネットワーク配信する CHOPです。RTSP モードでは Port + Stream Name を URL に組み込んで複数クライアントへ配信、WebRTC モードでは WebRTC DAT 経由のピア接続で低遅延送信を実現します。
主な用途 🎯
- RTSP プロトコルによる音声ストリームのネットワーク配信
- WebRTC ピア接続を介した低遅延の音声送信
- リモートクライアントへのリアルタイム音声配信
- 複数受信端末への同一音声ストリーム同時配信
- TouchDesigner プロジェクト間のネットワーク音声中継
データフロー 🔄
入力: 音声 CHOP(Audio Device In / Audio File In 等)
↓
Audio Stream Out CHOP(Mode: RTSP / WebRTC)
↓
ネットワーク送信(Port + Stream Name または WebRTC Track)
↓
受信側クライアント(Audio Stream In / WebRTC ピア / RTSP プレイヤー)
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Audio Stream Out Page 📡
Active .active 🟢
RTSP サーバーの起動・停止トグル
| 項目 | 内部名 | 説明 |
|---|---|---|
| Active | .active |
オン: RTSP サーバーを起動して音声ストリーム送信を開始。オフ: サーバーを停止し送信を中断。 |
Mode .mode 🔀
ストリーム送信方式の選択メニュー
| 項目 | 内部名 | 説明 |
|---|---|---|
| RTSP | .rtsp |
RTSP プロトコルでストリーム配信(Port + Stream Name で URL を組み立て複数クライアントへ送信) |
| WebRTC | .webrtc |
WebRTC ピア接続でストリーム送信(WebRTC DAT 経由、低遅延・ブラウザ対応) |
Port .port 🔌
RTSP モード時の送信ポート番号:
- Port 番号: 音声ストリームの送信に使用するポート番号。受信側クライアントの URL に同じ番号を記述する必要があります
Stream Name .streamname 🏷️
RTSP モード時のストリーム識別子:
- Stream Name 文字列: ストリームに割り当てる名前。受信側クライアントの URL(
rtsp://<host>:<port>/<streamname>形式)に使用される
WebRTC Page 🌐
WebRTC .webrtc 📶
WebRTC DAT(ピア)の参照:
- WebRTC DAT パス: 音声ストリームを送出する WebRTC DAT のパス。設定すると WebRTC Connection メニューが利用可能な接続で自動的に populate される
WebRTC Connection .webrtcconnection 🔗
WebRTC ピア・ツー・ピア接続:
- WebRTC Connection 識別子: 送信に使う WebRTC ピア・ツー・ピア接続。選択すると WebRTC Track メニューが利用可能な音声出力トラックで自動的に populate される
WebRTC Track .webrtctrack 🎚️
WebRTC 音声出力トラック:
- WebRTC Track 識別子: WebRTC ピア・ツー・ピア接続に属する音声出力トラック。音声ストリームはこのトラック上で送信される
Common Page 🔧
Time Slice .timeslice ⏱️
Time Slice モードの強制設定:
- オン: チャンネルを「タイムスライス」モードに強制
- タイムスライス: 前回のクックフレームから現在のクックフレームまでの時間
Scope .scope 🎯
影響を受けるチャンネルの絞り込み:
- Scope 文字列: 影響を受けるチャンネルを指定する文字列
- パターンマッチング:
*や[1-10]等のパターンが使用可能
Sample Rate Match .srselect ⚡
複数の入力 CHOP のサンプルレートが異なる場合の処理方法
| 項目 | 内部名 | 説明 |
|---|---|---|
| Resample At First Input’s Rate | .first |
最初の入力のレートで他をリサンプル |
| Resample At Maximum Rate | .max |
最高サンプルレートでリサンプル |
| Resample At Minimum Rate | .min |
最低サンプルレートでリサンプル |
| Error If Rates Differ | .err |
レート不一致でエラー |
Export Method .exportmethod 📤
CHOP チャンネルをパラメータに接続する方法
| 項目 | 内部名 | 説明 |
|---|---|---|
| DAT Table by Index | .datindex |
DAT テーブルのインデックスでチャンネルとパラメータを対応付け |
| DAT Table by Name | .datname |
DAT テーブルの行名でチャンネルとパラメータを対応付け |
| Channel Name is Path:Parameter | .autoname |
チャンネル名を `path:parameter` 形式で記述し直接対応付け |
Export Root .autoexportroot 🌳
Channel Name is Path:Parameter モード時のパス基点:
- Export Root パス:
autonameモードでチャンネル名のパス部分を相対化する基点 OP のパス
Export Table .exporttable 📋
DAT Table エクスポート方式での参照 DAT:
- Export Table DAT:
datindex/datnameモード時に参照する DAT のパス
Rename from .commonrenamefrom 🔤
リネーム対象チャンネルのパターン:
- Rename from パターン: リネーム対象とするチャンネル名のパターンマッチング文字列
Rename to .commonrenameto 🔁
リネーム後の置換パターン:
- Rename to パターン: Rename from にマッチしたチャンネルの新しい名前パターン (デフォルトはリネームなし)
実践アイデア 💡
Example 1: マイク入力を RTSP でリモート配信 🎙️
Audio Device In CHOP → Audio Stream Out CHOP (Mode: RTSP, Port: 8554, Stream Name: mic) → ネットワーク → 受信側 RTSP プレイヤー
- Audio Device In CHOP でマイク入力を取得
- Audio Stream Out CHOP を作成し Mode を「RTSP」に設定
- Port = 8554、Stream Name = mic を設定し Active をオン
- 受信側で
rtsp://<host>:8554/micの URL でストリームを再生する
Example 2: WebRTC で低遅延ブラウザ配信 🌐
Audio File In CHOP → Audio Stream Out CHOP (Mode: WebRTC, WebRTC DAT) → ピア接続 → ブラウザ
- Audio File In CHOP で BGM ファイルをロード
- WebRTC DAT を別途配置してシグナリング・ピア接続を確立
- Audio Stream Out CHOP の Mode を「WebRTC」に設定し WebRTC DAT を参照
- WebRTC Connection / WebRTC Track を選択し Active をオンにしてブラウザへ低遅延送信
Example 3: TouchDesigner プロジェクト間の音声中継 🔁
送信側 Audio Device In CHOP → Audio Stream Out CHOP (RTSP) → LAN → 受信側 Audio Stream In CHOP
- 送信側プロジェクトで Audio Device In の出力を Audio Stream Out CHOP に接続
- Mode = RTSP、Port + Stream Name を任意の値に設定し Active をオン
- 受信側プロジェクトで Audio Stream In CHOP を作成し同じ URL を入力
- LAN 上の複数 TouchDesigner インスタンス間でリアルタイム音声を共有する
関連オペレータ 🔗
類似機能OP 🔍
- Audio NDI CHOP — NDI プロトコルで LAN 内に音声を送受信、RTSP/WebRTC とは別経路の低遅延配信
- Audio Device Out CHOP — ネットワーク送信ではなくローカル音声デバイスへの再生出力
- Audio File Out CHOP — ストリーム送信ではなく音声ファイルへの書き出し
組み合わせ推奨OP 🔄
- Audio Device In CHOP — マイク入力ソースとして Audio Stream Out の上流に直結
- Audio File In CHOP — 音声ファイルをソースとしてネットワーク配信
- Audio Filter CHOP — 送信前段で帯域制限・ノイズ除去を施す
- Audio Dynamics CHOP — 送信前段でコンプレッサー・リミッターによる音量整形
- WebRTC DAT — WebRTC モード時のシグナリング・ピア接続を担当する必須コンパニオン
前処理・後処理CHOP 🎯
- 前処理: Audio Device In CHOP、Audio File In CHOP、Audio Filter CHOP、Audio Dynamics CHOP
- 後処理: Audio Device Out CHOP、Audio File Out CHOP、Audio NDI CHOP
Info CHOP情報 📊
Audio Stream Out CHOPは Info CHOP による詳細情報取得に対応しています。
CHOP固有情報 🎚️
start: CHOPインターバルの開始(サンプル単位)length: CHOPのサンプル数sample_rate: フレーム毎秒のサンプルレートnum_channels: CHOPのチャンネル数time_slice: タイムスライス有効時は1、無効時は0export_sernum: Export接続の更新回数
汎用オペレータ情報 🔄
total_cooks: プロセス開始からのクック回数cook_time: 最後のクック時間(ミリ秒)cook_frame: 最後にクックされたフレーム番号warnings: 警告数errors: エラー数
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: 受信側でストリームに接続できない
✅ Solution:
- Active がオンになっているか確認(オフだと RTSP サーバーが起動しない)
- Port 番号と Stream Name が受信側 URL(
rtsp://<host>:<port>/<streamname>)と一致しているか確認 - ファイアウォール / NAT で該当 Port が解放されているか確認
❌ Problem: WebRTC モードで音声が届かない
✅ Solution:
- WebRTC DAT のシグナリングが完了しピア接続が確立しているか確認
- WebRTC Connection / WebRTC Track メニューが空でないか確認(空の場合は接続未確立)
- 送信側・受信側の WebRTC コーデック・サンプルレートが一致しているか確認
❌ Problem: 送信音声に途切れ・遅延・ノイズが出る
✅ Solution:
- 前段に Filter CHOP や Audio Filter CHOP を入れて高周波ノイズを抑制
- Audio Dynamics CHOP でリミッターをかけクリップを防止
- ネットワーク帯域・LAN/Wi-Fi 環境を確認、有線接続で安定化
❌ Problem: 同じ Port を別プロセスが使用していてサーバーが起動しない
✅ Solution:
- Port 番号を別の空きポートへ変更(例: 8554 → 8555)
- Active を一度オフにしてから再度オンにし RTSP サーバーを再起動
- OS 側で該当 Port を占有しているプロセスを終了する
参考資料 📚
その他 🔗
- TouchDesigner Wiki — CHOP 概要
- TouchDesigner Wiki — Category:CHOPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

