「DVD-RAMのIFOファイル」の編集履歴(バックアップ)一覧はこちら

DVD-RAMのIFOファイル」(2007/03/28 (水) 21:40:51) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

タイトルとクリップの紐付け情報が記録されていると思われるIFOファイルの構造を調べてみるために、DVD-RAMのIFOファイル(VR_MANGR.IFO)を見る。 この構造は、DVD-VR(DVD Video Recording Format)仕様のものだと思われる。しかし、DVD-VRの仕様書を見つける事が出来なかったので、地道に色々なデータを書き込んで検証する事に…。 とりあえず、色々な形式のIFOファイルの資料を見ていると、IFOファイルの内部は、複数のデータブロックの寄せ集めらしい事が分った。 また、これらのデータブロックに対するアドレス指定が、ヘッダの中に記述されているらしい事も。 と言う事で、以下のブロックがあると思われる(当然のことながら正式名称は不明) -ヘッダ -プレイリスト -クリップリスト -不明1 -タイトルリスト -ベンダ情報 ※これらのブロック中の数値はBig Endian **ヘッダ | 位置 |長さ| 内容 | | 0000 | 0C | 識別子('DVD_RTR_VMG0') | | 000C | 04 | このIFOファイルの終端位置(= ファイル長 - 1) | | 0010 | 04 | 「プレイリスト」ブロックの終端位置(ここまでが、本来のIFOブロックなのか?) | | 006C | 04 | ディスク番号? | | 00A2 | 3D | ディスクタイトル | | 0100 | 04 | 「クリップリスト」ブロックの開始位置 | | 0104 | 04 | 「不明1」ブロックの開始位置 | | 0130 | 04 | 「タイトルリスト」ブロックの開始位置 | | 0164 | 04 | 「ベンダ情報」ブロックの開始位置 | **プレイリスト ヘッダ中に、このブロックの開始位置を示す数値は見当たらず、ファイルの先頭から0x200の位置から始まる。 したがって、このブロックは、ヘッダの一部と解釈するほうが正しいのかも。 | 位置 |長さ| 内容 | | 0000 | 04 | 有効フラグ? (1: プレイリストあり、0: プレイリストなし) | | 0004 | 04 | このブロックの長さ相対的な終端位置(= ブロック長 - 1) | プレイリストが存在しない場合、「00 00 00 00 00 00 00 07」の8バイトのバイト列となる。 **クリップリスト | 位置 |長さ| 内容 | | 0000 | 04 | フラグ?(0x00000101) | | 0004 | 04 | このブロックの長さ相対的な終端位置(= ブロック長 - 1) | | 0008 | 3C | 不明なデータ列 | | 0044 | 02 | クリップ数 | | 0046 | 04*クリップ数 | クリップ情報への相対位置配列 | ***クリップ情報 | 位置 |長さ| 内容 | | 0000 | 02 | 0固定?(世界時、地方時識別フラグ?) | | 0002 | 05 | 日時情報(*) | | 0007 | 02 | 音声モード | | 0009 | 06 | 再生開始タイムスタンプ(*SCR) | | 000F | 06 | 再生終了タイムスタンプ(*SCR) | | 001D | 04 | ストリームのセクタ位置 | | 0021 | ?? | 不明 | ※日時情報は、5バイトの値を、b39-b26:年 b25-b22:月 b21-b17:日 b18-b12:時 b11-b06:分 b05-b00:秒として表現したもの ※SCRは、0x00からの4バイト整数値 * 300 + 0x04からの2バイト整数値で表される27MHzのタイムスタンプ **不明1 ヘッダの0x0104で指し示されたアドレスからのデータが、「00 00 00 00 00 00 00 07」となっているので、プレイリストブロックの先頭8バイトと同じ構造と思われる。 | 位置 |長さ| 内容 | | 0000 | 04 | 有効フラグ? (0: 無効) | | 0004 | 04 | このブロックの長さ相対的な終端位置(= ブロック長 - 1) | **タイトルリスト | 位置 |長さ| 内容 | | 0000 | 02 | タイトル数 | | 0002 | 02 | クリップ数 | | 0004 | 8E * タイトル数 | タイトルの情報 * タイトル数 | | 0004 + 8E * タイトル数 | 4 * クリップ数 | タイトルクリップ情報への相対位置配列 | ***タイトル情報 | 位置 |長さ| 内容 | | 0000 | 04 | このタイトルに含まれるクリップ数 | | 0004 | 40 | 記録日時や、ビットレートなどの情報 | | 0044 | 40 | タイトル名(シフトJIS) | | 0084 | 04 | タイトルサムネイルのフレームが含まれるクリップ番号 | | 0088 | 08 | タイトルサムネイルのフレームのタイムスタンプ | ***タイトルクリップ情報 ''この情報は、クリップリストのクリップ情報とは異なる'' | 位置 |長さ| 内容 | | 0000 | 04 | クリップ番号(1~) | | 0004 | 02 | このクリップに含まれるチャプタ数 | | 0006 | 06 | 再生開始タイムスタンプ(*SCR) | | 000C | 06 | 再生終了タイムスタンプ(*SCR) | | 0012 | any | チャプタ情報の配列 | ***チャプタ情報 | 位置 |長さ| 内容 | | 0000 | 01 | チャプタ情報文字列の長さ(未定義の場合0) | | 0001 | 06 | チャプタ位置のタイムスタンプ(*SCR) | | 0007 | チャプタ情報文字列の長さ | チャプタタイトル | | 0007 + チャプタ情報文字列の長さ | チャプタ情報文字列の長さ | チャプタの詳細 | ということらしい。
タイトルとクリップの紐付け情報が記録されていると思われるIFOファイルの構造を調べてみるために、DVD-RAMのIFOファイル(VR_MANGR.IFO)を見る。 この構造は、DVD-VR(DVD Video Recording Format)仕様のものだと思われる。しかし、DVD-VRの仕様書を見つける事が出来なかったので、地道に色々なデータを書き込んで検証する事に…。 とりあえず、色々な形式のIFOファイルの資料を見ていると、IFOファイルの内部は、複数のデータブロックの寄せ集めらしい事が分った。 また、これらのデータブロックに対するアドレス指定が、ヘッダの中に記述されているらしい事も。 と言う事で、以下のブロックがあると思われる(当然のことながら正式名称は不明) -ヘッダ -プレイリスト -クリップリスト -不明1 -タイトルリスト -ベンダ情報 ※これらのブロック中の数値はBig Endian **ヘッダ | 位置 |長さ| 内容 | | 0000 | 0C | 識別子('DVD_RTR_VMG0') | | 000C | 04 | このIFOファイルの終端位置(= ファイル長 - 1) | | 0010 | 04 | 「プレイリスト」ブロックの終端位置(ここまでが、本来のIFOブロックなのか?) | | 006C | 04 | ディスク番号? | | 00A2 | 3D | ディスクタイトル | | 0100 | 04 | 「クリップリスト」ブロックの開始位置 | | 0104 | 04 | 「不明1」ブロックの開始位置 | | 0130 | 04 | 「タイトルリスト」ブロックの開始位置 | | 0164 | 04 | 「ベンダ情報」ブロックの開始位置 | **プレイリスト ヘッダ中に、このブロックの開始位置を示す数値は見当たらず、ファイルの先頭から0x200の位置から始まる。 したがって、このブロックは、ヘッダの一部と解釈するほうが正しいのかも。 | 位置 |長さ| 内容 | | 0000 | 04 | 有効フラグ? (1: プレイリストあり、0: プレイリストなし) | | 0004 | 04 | このブロックの長さ相対的な終端位置(= ブロック長 - 1) | プレイリストが存在しない場合、「00 00 00 00 00 00 00 07」の8バイトのバイト列となる。 **クリップリスト | 位置 |長さ| 内容 | | 0000 | 04 | フラグ?(0x00000101) | | 0004 | 04 | このブロックの長さ相対的な終端位置(= ブロック長 - 1) | | 0008 | 3C | 不明なデータ列 | | 0044 | 02 | クリップ数 | | 0046 | 04 * クリップ数 | クリップ情報への相対位置配列 | ***クリップ情報 | 位置 |長さ| 内容 | | 0000 | 02 | 0固定?(世界時、地方時識別フラグ?) | | 0002 | 05 | 日時情報(*) | | 0007 | 02 | 音声モード | | 0009 | 06 | 再生開始タイムスタンプ(*SCR) | | 000F | 06 | 再生終了タイムスタンプ(*SCR) | | 001D | 04 | ストリームのセクタ位置 | | 0021 | ?? | 不明 | ※日時情報は、5バイトの値を、b39-b26:年 b25-b22:月 b21-b17:日 b18-b12:時 b11-b06:分 b05-b00:秒として表現したもの ※SCRは、0x00からの4バイト整数値 * 300 + 0x04からの2バイト整数値で表される27MHzのタイムスタンプ **不明1 ヘッダの0x0104で指し示されたアドレスからのデータが、「00 00 00 00 00 00 00 07」となっているので、プレイリストブロックの先頭8バイトと同じ構造と思われる。 | 位置 |長さ| 内容 | | 0000 | 04 | 有効フラグ? (0: 無効) | | 0004 | 04 | このブロックの長さ相対的な終端位置(= ブロック長 - 1) | **タイトルリスト | 位置 |長さ| 内容 | | 0000 | 02 | タイトル数 | | 0002 | 02 | クリップ数 | | 0004 | 8E * タイトル数 | タイトルの情報 * タイトル数 | | 0004 + 8E * タイトル数 | 4 * クリップ数 | タイトルクリップ情報への相対位置配列 | ***タイトル情報 | 位置 |長さ| 内容 | | 0000 | 04 | このタイトルに含まれるクリップ数 | | 0004 | 40 | 記録日時や、ビットレートなどの情報 | | 0044 | 40 | タイトル名(シフトJIS) | | 0084 | 04 | タイトルサムネイルのフレームが含まれるクリップ番号 | | 0088 | 08 | タイトルサムネイルのフレームのタイムスタンプ | ***タイトルクリップ情報 ''この情報は、クリップリストのクリップ情報とは異なる'' | 位置 |長さ| 内容 | | 0000 | 04 | クリップ番号(1~) | | 0004 | 02 | このクリップに含まれるチャプタ数 | | 0006 | 06 | 再生開始タイムスタンプ(*SCR) | | 000C | 06 | 再生終了タイムスタンプ(*SCR) | | 0012 | any | チャプタ情報の配列 | ***チャプタ情報 | 位置 |長さ| 内容 | | 0000 | 01 | チャプタ情報文字列の長さ(未定義の場合0) | | 0001 | 06 | チャプタ位置のタイムスタンプ(*SCR) | | 0007 | チャプタ情報文字列の長さ | チャプタタイトル | | 0007 + チャプタ情報文字列の長さ | チャプタ情報文字列の長さ | チャプタの詳細 | ということらしい。

表示オプション

横に並べて表示:
変化行の前後のみ表示: