
概要 📖 – メディアファイルのメタ情報 (解像度・コーデック・長さ等) をテーブルで取得
Media File Info DATは、画像 / 動画 / 音声ファイルの解像度・長さ・コーデック等のメタ情報を key/value テーブルとして出力する DATです。ソースは File でディスク上 / URL のファイルを直接指定するか、TOP / CHOP で既に Movie File In TOP や Audio File In CHOP が読み込んだメディアを参照します。Transpose で行 / 列の向きを入れ替えられます。
主な用途 🎯
- 動画ファイルの解像度 / フレームレート / 総フレーム数を再生制御用のテーブルとして取得
- 音声ファイルのサンプルレート / チャンネル数 / 長さを Audio File In CHOP と連動して読み出し
- 画像ファイルの幅・高さ・チャンネル形式を読み込み前に確認して合成解像度を動的決定
- 外部 URL (http:// / https://) で配信されたメディアのメタ情報をネットワーク経由で取得
- コーデック・コンテナ形式を取得して再生対応可否を分岐するロジックの入力情報源
データフロー 🔄
ファイルパス またはTOP / CHOP参照
↓
ファイルヘッダ解析でメタ情報を抽出
↓
DAT テーブル (key/value 行) として出力
↓
下流の Evaluate DAT / DAT to CHOP / Select DAT 等で個別フィールドを取り出し
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Media Info Page 📋
メディアソース指定 📁
File .file 📄
– 読み込み対象の画像 / 動画 / 音声ファイルのパスとファイル名
– 対応形式は TouchDesigner の File Types 一覧に準拠 (mp4 / mov / wav / jpg / png 等)
– http:// / https:// プレフィックスでインターネット上のファイルも指定可能
– 相対パスは .toe ファイルの保存場所を基点として解決される
TOP / CHOP .topchop 🔗
– Movie File In TOP または Audio File In CHOP へのリファレンスを指定
– 指定した OP が現在読み込んでいるメディアからメタ情報を取得
– File パラメータと併用した場合は TOP / CHOP 参照側が優先される
– 既存の再生 OP と同じファイル情報を二重ロードせずに取得したい場合に有効
リロード制御 🔄
Reload Pulse .reloadpulse ⚡
– 0 から 1 への変化でファイルを強制的に再読み込み
– 外部でファイルが差し替わったときや、起動時点でファイルが存在しなかったケースで有用
– Python からは op('mediafileinfo1').par.reloadpulse.pulse() で起動可能
File Open Timeout .opentimeout ⏲️
– ファイルオープン待ちのタイムアウト時間 (ミリ秒)
– タイムアウト到達時は待機を打ち切って何も出力しない
– ファイル未オープンのまま次のクックを迎えた場合は再度待機を開始し、オープン成功または失敗まで繰り返す
– ネットワーク越しの URL ファイルで読み込みが詰まったときの安全装置として機能
出力形式切替 🔀
Transpose .transpose 🔁
– 出力テーブルの行と列を入れ替えるトグル
– Off (デフォルト): 項目ごとに 1 行 (キー列 / 値列の 2 列構成)
– On: 項目ごとに 1 列 (キーがヘッダ行、値が次の行)
– 下流で Select DAT による列指定で値だけ取り出したい場合は On が便利
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: 動画ファイルの解像度を読み取って合成キャンバスを動的決定 🎬
Media File Info DAT (File=movie.mp4) → Evaluate DAT (width/height 抽出) → Constant CHOP → Composite TOP の出力解像度
再生する動画ファイルの解像度を事前に Media File Info DAT で取得し、その値を Evaluate DAT 経由で Constant CHOP に流し込み、下流の Composite TOP / Render TOP の出力解像度を素材に合わせて動的に決定する基本フロー。素材を差し替えても解像度ミスマッチが起きない構成。
- Media File Info DAT を配置し
Fileに再生したい動画ファイルのパスを設定 - 出力テーブルから
width/height行を Select DAT または Evaluate DAT で抽出 - DAT to CHOP で width / height をチャンネル化
- Constant CHOP の値として参照し、Composite TOP / Render TOP の Resolution に Export
- ファイル差し替え時は
Reload Pulseを発火して新しい解像度を即時反映
Example 2: Movie File Inの情報を二重ロードなし取得 🔗
Movie File In TOP → (TOP / CHOP 参照) → Media File Info DAT → DAT to CHOP → 再生位置スクラブ UI
既に Movie File In TOP がメディアを読み込んでいるとき、Media File Info DAT の TOP / CHOP パラメータでその TOP を参照する構成。同じファイルを Disk から二重に開かずにメタ情報を取得でき、トータルフレーム数からタイムラインスクラブ用 UI のスケールを動的に設定できる。
- Movie File In TOP を配置して再生したい動画を読み込み
- Media File Info DAT を配置し
TOP / CHOPに Movie File In TOP のパスを指定 (例:../moviefilein1) - 出力テーブルから
numframes等の項目を取得 - DAT to CHOP でチャンネル化し、Slider COMP の Range max として使用
- ファイル差し替え時は Media File Info 側の
Reload Pulseを発火してメタを更新
Example 3: URL 配信メディアのコーデック確認と再生分岐 🌐
Media File Info DAT (File=https://...) → Evaluate DAT (codec 判定) → Switch TOP → 再生 / フォールバック表示
外部 CDN から配信される動画 URL のコーデックを Media File Info DAT で確認し、再生可能なコーデックであれば Movie File In TOP で再生、そうでなければ静止画フォールバックに切り替える分岐ロジック。File Open Timeout でネットワーク待ちの安全装置を効かせる。
- Media File Info DAT を配置し
Fileにhttps://example.com/clip.mp4等の URL を設定 File Open Timeoutを 3000 (ms) 程度に設定してネットワーク詰まりを回避- Evaluate DAT で
video codec行の値を判定し対応可否フラグを生成 - DAT to CHOP でフラグを CHOP 化し Switch TOP のセレクタに接続
- 対応コーデックなら Movie File In TOP の出力、非対応なら静止画 TOP を表示にルーティング
関連オペレータ 🔗
類似機能OP 🔍
- TODO
組み合わせ推奨OP 🔄
- Movie File In TOP — Media File Info の
TOP / CHOP参照先となるメディア読み込み TOP - Audio File In CHOP — 音声ファイルを読み込む CHOP、Media File Info 側で参照可
- Evaluate DAT — メタ情報セル値を式評価して数値抽出 / 条件分岐に活用
- Select DAT — 解像度・長さ等の必要な行 / 列だけ抽出して下流に流す
- DAT to CHOP — テーブル化したメタ情報を CHOP チャンネル化して制御系に供給
- Convert DAT — メタ情報テーブルの区切り変換 / 大文字小文字変換などの整形
- Folder DAT — ディレクトリ列挙で得たファイル名を Media File Info の
Fileに動的に流す
前処理・後処理DAT 🎯
- 前処理: Folder DAT、File In DAT、Web Client DAT、Script DAT
- 後処理: Evaluate DAT、Select DAT、Convert DAT、Table DAT
Info DAT情報 📊
Media File Info DAT は Info DAT による詳細情報取得に対応しています (num_rows / num_cols / total_cooks / cook_time / cook_frame / warnings / errors 等の共通 DAT Info チャンネルを参照可能)。
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:
Fileのパスが正しく解決されているかを textport でop('mediafileinfo1').par.file.eval()で確認TOP / CHOP参照を併用している場合は参照先 OP がメディアを正常に読み込めているか確認Reload Pulseを 1 回発火してファイル再読み込みを明示的にトリガー- 対応形式 (File Types) 外のファイル拡張子を渡していないか確認
❌ Problem: URL 配信ファイル指定時に長時間ハングする
✅ Solution:
File Open Timeoutを短めの値 (例: 3000 ms) に設定してタイムアウトを効かせる- ネットワーク経路 / プロキシ / DNS で URL に到達できているかを別ツール (curl 等) で確認
- サーバ側が
Rangeリクエストに対応していない場合は事前にローカルにダウンロードしてからパス指定に切替 - Info DAT の
cook_timeを観測してオープンに何ミリ秒かかっているか定量確認
❌ Problem: 出力の行 / 列の向きが下流処理と合わない
✅ Solution:
Transposeパラメータを Off / On 切替で期待形に揃える- Off は項目ごとに 1 行 (キー / 値の 2 列構成)、On は項目ごとに 1 列 (1 行目がキーのヘッダ)
- Select DAT で行抽出する設計なら Off、列抽出する設計なら On が扱いやすい
- Convert DAT を後段に挟んで区切り再構成する選択肢もある
❌ Problem: Movie File In TOP 側でファイル差し替えてもメタ情報が古いまま
✅ Solution:
- Media File Info DAT 側の
Reload Pulseを明示的に発火して再評価を起動 - Movie File In TOP のファイルパス変更を検知して自動 pulse する Execute DAT を組む
FileパラメータとTOP / CHOP参照のどちらが優先されているか確認 (TOP / CHOP 優先)- Info DAT で
total_cooksが増えているか確認しクックそのものが止まっていないかを切り分け
参考資料 📚
その他 🔗
- TouchDesigner Wiki — DAT 概要
- TouchDesigner Wiki — Category:DATs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group
公式リソース 📖
- TouchDesigner公式ドキュメント – Media File Info DAT
- Movie File In TOP (TOP / CHOP 参照の主な対象)
- Audio File In CHOP (音声メディア参照対象)
- Info DAT (DAT 共通 Info チャンネル)

