Media File Info DAT 完全ガイド | 使い方・パラメータ解説【TouchDesigner】

※当サイトにはプロモーションリンクが含まれます。

Media File Info DAT のメディアメタ情報取得機能を示す図

記事更新の通知はXでアナウンス٩(๑❛ᴗ❛๑)
@maru6o6をフォロー

概要 📖 – メディアファイルのメタ情報 (解像度・コーデック・長さ等) をテーブルで取得

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 等で個別フィールドを取り出し

Tips

初心者の方は、以下日本語書籍も手元にあると安心です。

まる。
まる。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!


パラメータ解説 ⚙️

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 ExtensionCustom Extension のときに適用される拡張子:

  • Custom Extension 文字列: Edit/View Extensioncustom のときに使用される任意のファイル拡張子

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 の出力解像度を素材に合わせて動的に決定する基本フロー。素材を差し替えても解像度ミスマッチが起きない構成。

  1. Media File Info DAT を配置し File に再生したい動画ファイルのパスを設定
  2. 出力テーブルから width / height 行を Select DAT または Evaluate DAT で抽出
  3. DAT to CHOP で width / height をチャンネル化
  4. Constant CHOP の値として参照し、Composite TOP / Render TOP の Resolution に Export
  5. ファイル差し替え時は 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 のスケールを動的に設定できる。

  1. Movie File In TOP を配置して再生したい動画を読み込み
  2. Media File Info DAT を配置し TOP / CHOP に Movie File In TOP のパスを指定 (例: ../moviefilein1)
  3. 出力テーブルから numframes 等の項目を取得
  4. DAT to CHOP でチャンネル化し、Slider COMP の Range max として使用
  5. ファイル差し替え時は 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 でネットワーク待ちの安全装置を効かせる。

  1. Media File Info DAT を配置し Filehttps://example.com/clip.mp4 等の URL を設定
  2. File Open Timeout を 3000 (ms) 程度に設定してネットワーク詰まりを回避
  3. Evaluate DATvideo codec 行の値を判定し対応可否フラグを生成
  4. DAT to CHOP でフラグを CHOP 化し Switch TOP のセレクタに接続
  5. 対応コーデックなら 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 🎯


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 が増えているか確認しクックそのものが止まっていないかを切り分け

参考資料 📚

その他 🔗

公式リソース 📖

この記事はLLMと共に内容を執筆、更新しています。
最新バージョンとの項目差異など、情報の不一致を見つけた心優しい方はXもしくはInsta、メールなどよりサイト管理者までご連絡ください😎


まる。

お仕事のご依頼はDM又はメールにて。
━━━━━━━━━━━━━━━━━
Python/Touchdesigner/M5Stackをこよなく愛すフルスタックエンジニア。
専門は生理心理学、趣味はヨガやサウナ、EMS電気風呂などヘルスケア全般。
脳波や筋電、心拍を中心とした生体情報のセンシング&インタラクティブアートづくりがライフワーク。

普段はワントゥーテンという会社で空間演出エンジニアをしています。
リファラル採用お繋ぎできますので、我こそはという尖った方は経歴と希望職種添えてDMください(エンジニア以外、営業職等もOK)。
ご飯行きましょう。

↓日常垢
Instagram:@malmal0v0

まる。をフォローする
その他の記事はこちら
Math Combine POP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
ZED Select TOP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
ZED POP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
Window COMP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
Widget COMP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】

タイトルとURLをコピーしました