
概要 📖 – ビデオ入出力機器の一覧取得
Video Devices DATは、システム上で利用可能なビデオデバイスをドライバ別にスキャンしてテーブルとして列挙する DATです。Driver メニューで対象ドライバ (DirectShow / Media Foundation / Blackmagic / AJA 等) を選択し、Input Devices / Output Devices トグルで入出力フィルタを設定すると、合致するビデオデバイスが DAT テーブルに出力されます。Video Device In TOP / Video Device Out TOP のデバイス選択肢と連携させて、運用環境のキャプチャ構成に動的追従する映像パイプラインを構築できます。
主な用途 🎯
- システム上のビデオデバイス一覧の取得として、Webカメラ・キャプチャカード・SDI / HDMI IO 等のビデオ入出力機器をドライバ別にテーブル化
- Video Device In TOP / Video Device Out TOP のターゲット選定として、検出したデバイス名をビデオ入出力 OP の参照先に動的バインド
- Blackmagic / AJA / Deltacast 等のプロキャプチャ機材の利用可否確認として、放送用 IO カードが現環境で認識されているかをパッチ実行前にチェック
- カメラ抜き差しのコールバック監視として、外部カメラやキャプチャデバイスの接続変化を即座に検知してログや UI に反映
- マルチカメラ運用での自動再構成として、PC 入替や USB 再接続時にデバイス並び順が変わってもテーブル参照で配線を自動追従
データフロー 🔄
入力: OS が認識しているビデオドライバ・デバイス情報
↓
Video Devices DAT がドライバ・入出力フラグでフィルタしながらデバイスを enumerate
↓
出力: 検出デバイス一覧テーブル (ドライバ / デバイス名 / 入出力種別 等)
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Video Devices Page 📋
Driver .driver 🎚️
デバイス列挙の対象とするビデオドライバの選択
| 項目 | 内部名 | 説明 |
|---|---|---|
| DirectShow (WDM) | .directshow |
Windows 標準の DirectShow (WDM) ドライバ経由のデバイス |
| Media Foundation | .mediafoundation |
Windows の Media Foundation API 経由のデバイス |
| Imaging Source – Not Supported | .imagingsource |
The Imaging Source 製カメラ用ドライバ (現状非サポート表記) |
| DataPath (RGBEASY) | .datapath |
DataPath RGBEASY キャプチャカード系デバイス |
| Blackmagic | .blackmagic |
Blackmagic Design 製キャプチャ・IO デバイス (DeckLink / UltraStudio 等) |
| Allied Vision (GigE) | .alliedvisiongige |
Allied Vision 製 GigE Vision 規格の産業用カメラ |
| Imaging Development Systems (IDS) | .ids |
IDS 製産業用 USB / GigE カメラ |
| FLIR / Point Grey (FlyCapture2) | .pointgreyflycapture |
FLIR / Point Grey 製カメラの旧 FlyCapture2 SDK 経由デバイス |
| FLIR / Point Grey (Spinnaker) | .flirspinnaker |
FLIR / Point Grey 製カメラの新 Spinnaker SDK 経由デバイス |
| AVFoundation (macOS) | .avfoundation |
macOS 標準の AVFoundation 経由のビデオデバイス |
| BlueFish444 | .bluefish444 |
BlueFish444 製放送グレード SDI IO カード |
| AJA | .aja |
AJA 製キャプチャ・IO デバイス (KONA / Io 等) |
| Ximea | .ximea |
Ximea 製産業用カメラ |
| Deltacast | .deltacast |
Deltacast 製放送 IO カード |
All Drivers .alldrivers 🌐
Driver 設定を無視して全ドライバのデバイスを列挙するトグル:
- All Drivers トグル:
alldriversをオンにするとDriverの選択を無視し、利用可能な全ドライバのデバイスをまとめてテーブル化
Input Devices .input 📥
入力系デバイスの列挙トグル:
- Input Devices トグル:
inputをオンにすると入力 (カメラ・SDI / HDMI キャプチャ入力 等) デバイスをテーブルに追加
Output Devices .output 📤
出力系デバイスの列挙トグル:
- Output Devices トグル:
outputをオンにすると出力 (SDI / HDMI 出力カード等) デバイスをテーブルに追加
Callbacks DAT .callbacks 🔔
デバイステーブルの変化に応答するコールバックスクリプト:
- Callbacks DAT:
callbacksテーブルに変化 (デバイス出現 / 消失 / 状態変化) があるたびに 1 回実行されるスクリプト DAT へのパス
Common Page 🔧
Language .language 📝
DAT が動作するスクリプト言語の決定方法
| 項目 | 内部名 | 説明 |
|---|---|---|
| Input | .input |
入力 DAT のスクリプト言語を使用 |
| Node | .node |
この DAT 自身のスクリプト言語を使用 |
Edit/View Extension .extension 📄
外部エディタに公開するファイル拡張子の選択
| 項目 | 内部名 | 説明 |
|---|---|---|
| dat | .dat |
汎用的なファイル拡張子 dat を使用 |
| From Language | .language |
DAT のスクリプト言語に応じた拡張子を自動選択 |
| Custom Extension | .custom |
Custom Extension で指定したカスタム拡張子を使用 |
Custom Extension .customext 🔤
Edit/View Extension が Custom Extension のときに適用される拡張子:
- Custom Extension 文字列:
Edit/View Extensionがcustomのときに使用される任意のファイル拡張子
Word Wrap .wordwrap 🔁
ノード表示でのワードラップ (折り返し) の有効化
| 項目 | 内部名 | 説明 |
|---|---|---|
| Input | .input |
入力 DAT の Word Wrap 設定を継承 |
| On | .on |
Word Wrap を有効化 (ノード上の長い行を折り返し表示) |
| Off | .off |
Word Wrap を無効化 (折り返さずそのまま表示) |
実践アイデア 💡
Example 1: カメラ自動バインド 🎥
Video Devices DAT (Input=on) → Select DAT (target row 抽出) → Video Device In TOP (Device パラメータに参照式)
Video Devices DAT で入力デバイスを列挙し、Select DAT で目的のカメラやキャプチャカードの行を抜き出して、Video Device In TOP の Device パラメータに参照式で接続する基本フロー。PC 入替や USB ポート変更でデバイス順が変わってもデバイス名さえ揃っていれば配線を維持できる。
- Video Devices DAT を配置し Input Devices をオン、Output Devices をオフに設定
- Driver を運用環境に合わせて選択 (Webカメラ系なら DirectShow / Media Foundation、放送系なら Blackmagic / AJA 等)
- Select DAT でターゲットカメラ名を含む行を抽出
- Video Device In TOP の Device パラメータに Select DAT のセル参照式を記入
- デバイス出現順や OS のインデックスに依存しない動的バインドが完成
Example 2: カメラ抜き差し監視 👀
Video Devices DAT (callbacks=script_dat) → Text DAT (Python callback) → UI / ログ表示
Video Devices DAT の Callbacks にスクリプト DAT を指定し、外部カメラやキャプチャデバイスの抜き差しが発生したタイミングで Python 側がデバイステーブルの差分を取り、UI 通知やログ出力に流す監視構成。
- Text DAT を作成し callbacks 用の Python スクリプトを記述 (デバイス出現・消失・状態変化のハンドラ)
- Video Devices DAT の Callbacks DAT パラメータにそのスクリプト DAT を指定
- デバイステーブル更新時に前回テーブルとの差分を計算してイベント発火
- UI Table COMP に「接続中」「切断」のステータスをハイライト表示
Example 3: Blackmagic可否判定 🚦
Video Devices DAT (Driver=Blackmagic) → Info CHOP (num_rows) → Logic / Switch TOP → 入力経路切替
Driver を Blackmagic に固定して Video Devices DAT を実行し、Info CHOP で num_rows を取得することで「現環境で Blackmagic 系のキャプチャデバイスが見えるか」をパッチ起動時に判定。Blackmagic 不在の PC では DirectShow 系の Webカメラ経路にフォールバックする運用に使える。
- Video Devices DAT の Driver を Blackmagic、Input/Output Devices を必要に応じてオン
- Info CHOP で対象 Video Devices DAT を参照し num_rows チャンネルを取得
- Logic CHOP / Switch TOP で num_rows ≥ 1 のとき Blackmagic 系入力経路を有効化
- num_rows = 0 の場合は DirectShow / Media Foundation の Webカメラ経路に切替えて警告メッセージを表示
関連オペレータ 🔗
類似機能OP 🔍
- Audio Devices DAT — システム上のオーディオ I/O デバイスを列挙する DAT
- Monitors DAT — 接続中のディスプレイ・モニタ情報を取得する DAT
- Serial Devices DAT — シリアル接続デバイス一覧を取得する DAT
- Art-Net DAT — ネットワーク上の Art-Net 照明デバイスを検出する DAT
組み合わせ推奨OP 🔄
- Video Device In TOP — 検出デバイスを入力ソースとして映像を取り込む
- Video Device Out TOP — 検出デバイスを出力先として映像を送出
- DAT Execute DAT — デバイステーブルの行・列変化に応じてスクリプトを起動
- Select DAT — テーブルから特定行・列を抽出して下流の参照ソースを整理
- Info CHOP — DAT 自身の num_rows / num_cols 等のメタ情報取得
前処理・後処理DAT 🎯
Info CHOP情報 📊
Video Devices DAT は Info CHOP による詳細情報取得に対応しています。num_rows / num_cols でテーブル規模を、total_cooks / cook_time / cpu_time で実行統計を参照でき、デバイス再列挙のトリガ判定や負荷監視に利用できます。
DAT 固有情報 📋
num_rows: DAT の行数num_cols: DAT の列数type: DAT の型 (table / text)is_table: テーブル形式の場合 1、テキスト形式の場合 0
汎用オペレータ情報 🔄
total_cooks: プロセス開始からのクック回数cook_time: 最後のクック時間 (ミリ秒)cook_frame: 最後にクックされたフレーム番号warnings: 警告数errors: エラー数
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: 想定したビデオデバイスがテーブルに現れない
✅ Solution:
- Driver パラメータが対象デバイスの所属ドライバと一致しているか確認 (Blackmagic 製品を DirectShow で見ようとしていないか等)
- All Drivers をオンにして全ドライバ横断で列挙し対象デバイスがどのドライバに紐付くかを特定
- Input Devices / Output Devices のトグルが目的に合っているか確認 (入力デバイスを見たいのに Input がオフだと出ない)
❌ Problem: Blackmagic / AJA を選択しても行が 0 件
✅ Solution:
- メーカー純正ドライバ (Desktop Video / AJA NTV2 等) が PC にインストール済みか確認
- キャプチャデバイスが他アプリケーション (Media Express / OBS / 配信ソフト 等) に占有されていないか確認し、必要なら他アプリを終了
- プロドライバ不在環境向けに Video Devices DAT を Driver=DirectShow で並列配置し、Switch TOP でフォールバック経路を用意
❌ Problem: カメラ抜き差しに反応せずテーブルが更新されない
✅ Solution:
- Callbacks DAT パラメータに指定したスクリプト DAT のパスが正しいか確認
- VideodevicesDAT_Class の Python API ドキュメントに沿ったコールバック関数名・シグネチャになっているか確認
- Text DAT の Language が Python になっており構文エラーが無いかテキストポート (textport) で確認
❌ Problem: デバイス名は出るが Video Device In TOP で選択できない
✅ Solution:
- Video Device In TOP の Library パラメータが Video Devices DAT の Driver 設定と一致しているか確認
- デバイス名に Unicode や全角文字が含まれている場合はパッチ全体で同一文字列が使われているか確認 (細かな差で照合不一致が起きる)
- OS のデバイスマネージャでカメラが「有効」になっているか確認し、再ポーリング (DAT の再 cook) を実行
参考資料 📚
その他 🔗
- TouchDesigner Wiki — DAT 概要
- TouchDesigner Wiki — Category:DATs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group
公式リソース 📖
- TouchDesigner公式ドキュメント – Video Devices DAT
- VideodevicesDAT Class (Python API)
- Video Device In TOP (検出デバイスを入力に使用)
- Video Device Out TOP (検出デバイスを出力に使用)

