動画フォルダの構造

  1. 全体の構造

    SmartVision 2.1の場合, 標準の動画フォルダは初期状態で次の3箇所ある:

    録画フォルダ C:\Documents and Settings\All Users\Documents\My Pictures
    
    編集フォルダ C:\Documents and Settings\All Users\Documents\My Pictures\SVEdit
    
    おまかせ     C:\Documents and Settings\All Users\Documents\My Pictures\SVAutoRec
    
    以上のフォルダの場所はレジストリに保存されている:
    [HKEY_CURRENT_USER\Software\NEC\SmartVision\MainApp]
    "MpegFileSavePath"="C:\\Documents and Settings\\All Users\\Documents\\My Pictures"
    "EditMpegSavePath"="C:\\Documents and Settings\\All Users\\Documents\\My Pictures\\SVEdit"
    
    [HKEY_LOCAL_MACHINE\SOFTWARE\NEC\SmartVision\SvAutoRec\Setting]
    "AutoRecFileSavePath"="C:\\Documents and Settings\\All Users\\Documents\\My Pictures\\SVAutoRec"
    

    動画フォルダは設定で変更できるし追加もできる. 適当に移動して使う人も多いので注意.

    動画フォルダの中身は.sviファイルとフォルダである. そのフォルダの中には動画本体その他のファイルがある. 例えば, 2005年8月6日8時15分と2005年8月9日11時2分に予約録画すると, 録画フォルダの内容は次のようになる:

    20050806_081455.svi
    20050806_081455\ --- 20050806_081455.m2p
                      |- 20050806_081455.INFO
                      |- 20050806_081455.itbl
                      |- 20050806_081455.dt
                      |- 20050806_081455_0000000000000000_p.bmk
                      |- 20050806_081455_0000000000000000_p.bms
                      |-  ...
    20050809_110155.svi
    20050809_110155\ --- 20050809_110155.m2p
                      |- 20050809_110155.INFO
                      |- 20050809_110155.itbl
                      |- 20050809_110155.dt
                      |- 20050809_110155_0000000000000000_p.bmk
                      |- 20050809_110155_0000000000000000_p.bms
                      |-  ...
    
    ファイル名・フォルダ名は実際に録画が開始された「年月日_時分秒」を表す. この例では数秒前から録画を開始するように設定していたため, このようなファイル名・フォルダ名となる.

    ただし, エクスポートした場合, ファイル名・フォルダ名は.sviファイルに保存されている年月日時分秒が使われる. また, 分割単位をひとつの番組としてエクスポートすると, 「年月日_時分秒.#001」, 「年月日_時分秒.#002」, 「年月日_時分秒.#003」,...というファイル名・フォルダ名になる.

    また, インポートした動画の場合, 元のファイル名がそのまま使われる. 例えば, MONSTER200507190218.MPGというファイルをインポートすると, 次のようなフォルダ構成になる.

    MONSTER200507190218.svi
    MONSTER200507190218\ --- MONSTER200507190218.m2p
                          |- MONSTER200507190218.INFO
                          |- MONSTER200507190218.itbl
    

    個々のファイルの概要は以下の通り:

    .svi 動画ファイルに関するデータ
    .m2p .mpg 動画ファイル本体
    .INFO 分割ファイル管理
    .itbl I-Picture Table(SmartVisionの早送り・巻戻し等で使用)
    .dt シーンインデックスに関係する
    .bmk .bms シーンインデックスに使用するbitmap静止画像
    .esd エクスポート記録

    このうち.dt .bmk .bmsは, インポートした場合やレジストリで次のように設定した場合は生成しない.

    [HKEY_LOCAL_MACHINE\SOFTWARE\NEC\SmartVision\LogTrace\Youyaku]
    "RmvYouyaku"=dword:00000001
    

  2. .sviファイルの詳細

    SmartVision 2.1の場合

    ファイルサイズは8192バイトで固定. SmartVision 2.0でもこのファイルを読める.

    構造は以下の通り. 文字列はShift_JISで末尾は0. 「」で囲んだ数字は全て16進数.

    8bytes   : unknown1: 「00 18 00 00 01 01 00 00」のみ.
    2bytes   : TVのときチャンネル番号, CATVのときチャンネル番号-12, 外部入力のとき1.
    2bytes   : 0→TV, 3→CATV, 4→外部入力. インポートは外部入力扱い.
    260bytes : 放送局名. 未設定・外部入力・インポートのときは"放送局名なし".
    3072bytes: 番組名. ないときは"番組名なし". インポートのときはファイル名(拡張子なし).
    1024bytes: 詳細情報. ないときは"詳細情報なし".
    260bytes : 動画ファイルのフルパス名. [*1]
    2bytes   : 録画開始年. [*2]
    2bytes   : 録画開始月.
    2bytes   : 録画開始曜日. 0→日, 1→月, 2→火, 3→水, 4→木, 5→金, 6→土.
    2bytes   : 録画開始日.
    2bytes   : 録画開始時.
    2bytes   : 録画開始分.
    2bytes   : 録画開始秒. [*3]
    2bytes   : 録画開始ミリ秒. [*3]
    2bytes   : 録画終了年. 不慮の録画中断のとき, 録画終了時刻は全て0になる. [*4]
    2bytes   : 録画終了月.
    2bytes   : 録画終了曜日. 0→日, 1→月, 2→火, 3→水, 4→木, 5→金, 6→土.
    2bytes   : 録画終了日.
    2bytes   : 録画終了時.
    2bytes   : 録画終了分.
    2bytes   : 録画終了秒. [*5]
    2bytes   : 録画終了ミリ秒. [*5]
    4bytes   : ビットレート(bit/秒). [*6]
    4bytes   : unknown4-1: 「00 00 00 00」→インポート.
                           「03 00 00 00」→その他.
    4bytes   : ADAMS-EPGの情報で: 0→モノラル, 2→音声多重, 3→ステレオ, 4→二ヶ国語.
    4bytes   : 0→標準画質, 1→高画質, 2→ユーザー設定・インポート, 7→長時間.
    4bytes   : unknown4-2: 「00 00 00 00」のみ.
    4bytes   : 0→未視聴, 1→既視聴.
    8bytes   : unknown4-3: 「0C 00 00 00 FF FF FF FF」→インポート.
                           「0F 00 00 00 FF FF FF FF」→インポート.
                           「0F 00 00 00 01 00 00 00」→その他.
    8bytes   : 1→MPEG2(CBR), 2→MPEG2(VBR), 3→VideoCD(MPEG1). [*7]
    8bytes   : 0→352x240, 1→352x480, 2→720x480. [*7]
    232bytes : unknown4-4: 全て0.
    4bytes   : 以下は確認したものの一部. 詳細な全ジャンル一覧
               ""   →なし. 外部入力はここ.
               "B1" →ドラマ.
               "C2" →映画.
               "D2" →スポーツ.
               "E2" →劇場/公演.
               "F3" →音楽.
               "G1" →バラエティ.
               "H4" →教養/ドキュメンタリー.
               "I1" →アニメ/特撮.
               "J3" →ニュース/報道.
               "K9" →趣味/教育.		     
               "L1" →その他. インポートはここ.
               情報・福祉のジャンルはなくなったと思われる.
    12bytes  : unknown4-5: 全て0.
    4bytes   : SmartVisionでジャンルを変更すると, ここが書き換わり, 優先される.
               「00 00 00 00」→初期値.
               「42 00 00 00」→ニュース/報道.
               「43 00 00 00」→スポーツ.
               「44 00 00 00」→情報.
               「45 00 00 00」→ドラマ.
               「46 00 00 00」→音楽.
               「47 00 00 00」→バラエティ.
               「48 00 00 00」→映画.
               「49 00 00 00」→アニメ/特撮.
               「4A 00 00 00」→教養/ドキュメンタリー.
               「4B 00 00 00」→劇場/公演.
               「4C 00 00 00」→趣味/教育.
               「4D 00 00 00」→福祉.
               「51 00 00 00」→その他. インポートは最初からこの設定.
    12bytes  : unknown4-6: 全て0.
    4bytes   : 録画秒数. 動画の本当の秒数にかなり近い値.
    4bytes   : 動画ファイル分割数. 不慮の録画中断のときは0.
    4bytes   : unknown5: 「00 00 00 00」のみ.
    8bytes   : ファイルバイト数. 不慮の録画中断のときは0.
    1024bytes: unknown6-1: 全て「FF」.
    16bytes  : unknown6-2: 全て0.
    8bytes   : unknown6-3: 「00 08 00 00 01 01 00 00」のみ.
    4bytes   : unknown6-4: 全て0.
    4bytes   : 0→非インポート. 1→インポート.
    4bytes   : 0→非おまかせ. 1→おまかせ.
    92bytes  : unknown6-5: 全て0.
    8bytes   : unknown6-6: 「00 08 00 00 01 01 00 00」→通常.
                            0→分割単位をひとつの番組としてエクスポートしたとき.
    1280bytes: 8バイト毎に区切り, 小文字で表した16桁の16進整数値がシーンインデックスファイル名を示す:
               "年月日_時分秒_16進整数値_s.bmk", "年月日_時分秒_16進整数値_s.bms".
               この整数値は開始からのミリ秒数を表す.
               残りの不要な部分は全て「FF FF FF FF FF FF FF FF」.
    260bytes : 録画予約したユーザ名.
    4bytes   : 0→非シークレット. 1→シークレット.
    2bytes   : 通常0. エクスポートされた.sviファイルの場合:
               TVのときチャンネル番号, CATVのときチャンネル番号-12, 外部入力のとき1.
    2bytes   : 通常0. エクスポートされた.sviファイルの場合:
               0→TV, 3→CATV, 4→外部入力.
    492bytes : unknown7: 全て0.
    

    [*1] 動画フォルダは自分で移動して使う人が多い. フルパス名はあまり信用すべきではない. 実際, 勝手に移動した動画フォルダをSmartVisionで読み込んでも, 正常に再生できる.

    [*2] インポートの場合, インポートした時刻になる. ただし, 0:00〜9:00にインポートすると, 間違いではないものの32:21というような不自然な時刻になるので注意. おそらく世界標準時で日付変更判定しているのだろう.

    [*3] 予約録画の場合, 録画開始時刻は実際に録画が始められた時刻ではなく, 予約時に指定された時刻. よって録画開始秒・ミリ秒は0になる.

    [*4] インポートの場合, インポートした時刻+動画再生時間になる. 開始時刻と違い自然な時刻になる. なお, ミリ秒は0になる.

    [*5] 録画終了作業が完了した時刻と思われる. 映像がこの時刻まで録画されているわけではない.

    [*6] 標準画質のとき4338000, 高画質のとき8349873, 長時間のとき2320500で固定. インポートのときは計算している様子.

    [*7] 標準画質→MPEG2(VBR) 720x480, 高画質→MPEG2(CBR) 720x480, 長時間→MPEG2(VBR) 352x480.

    SmartVision 1.9の場合

    これはSmartVision 1.9用にエクスポートしたものを解析したもの. 実際のSmartVision 1.9の.sviファイルとは完全には一致しないと思われる.

    ファイルサイズは6144バイトで固定. 構造はSmartVision 2.1の最初の6144バイトとほぼ同じで, 先頭の部分のみ以下のように異なる.

    8bytes : unknown1: 「00 18 00 00 04 00 00 00」
    

    SmartVision 1.8以下の場合

    これはSmartVision 1.8以下用にエクスポートしたものを解析したもの. 実際のSmartVision 1.8以下の.sviファイルとは完全には一致しないと思われる.

    ファイルのある場所は, SmartVision 1.9以上とは異なり, .m2pファイル等と同じところにある.

    ファイルサイズは6144バイトで固定. 構造はSmartVision 2.1の最初の6144バイトとほぼ同じで, 先頭の部分のみ以下のように異なる.

    8bytes : unknown1: 「00 18 00 00 02 00 00 00」
    

  3. .m2p .mpgファイルの詳細

    .m2pはMPEG2, .mpgはMPEG1.

    ファイルが分割されるときは以下のようなファイル名になる. 「foo」の部分は実際には「年月日_時分秒」など.

    foo.m2p
    foo.001.m2p
    foo.002.m2p
    foo.003.m2p
      ...
    

    録画時に4GBを超える場合, 4GB以下ずつに分割される. 正確な最大サイズは未調査.

    エクスポートで分割するときは, 単なる分割ではないので少し総サイズが大きくなる. 一方, エクスポートで結合するときは単純に繋げるのみ. よって, 分割ファイルを結合するときは次のようにすれば十分.

    copy /b foo.m2p + foo.001.m2p + foo.002.m2p + foo.003.m2p destination.m2p
    

    インポートできるのはMPEG2のみで, 拡張子は.m2pに変更される.

  4. .INFOファイルの詳細

    ファイルサイズは568バイトで固定.

    構造は以下の通り. 文字列はShift_JISで末尾は0.

    4bytes  : 動画ファイルの分割数-1.
    4bytes  : unknown1: 未分割→動画ファイルサイズ.
                        分割→最後の動画ファイルサイズ.
    4bytes  : unknown2: 分割もエクスポートもされていないもの→「00 00 00 FF」.
                        未分割のものがエクスポートされたもの→動画ファイルサイズ.
                        分割→先頭の動画ファイルサイズに近い.
    4bytes  : unknown3: ファイルサイズ÷再生秒数に近い.
    4bytes  : unknown4: 未分割→動画ファイルサイズ. 
                        分割→動画ファイルサイズの合計に近い.
    24bytes : unknown5: 0のみ.
    512bytes: 先頭の動画ファイル名(拡張子なし).
    12bytes : 拡張子(ピリオドなし).
    

  5. .itblファイルの詳細

    動画ファイル1つに, 同名の.itblファイルが1つ作られる.

    詳細不明.

  6. .dtファイルの詳細

    詳細不明.

  7. .bmk .bmsファイルの詳細

    .bmkは最も一般的なWindows 3.xフォーマットビットマップ. サイズはキャプチャサイズと同じ. カラーは32bit.

    .bmsも同じくWindows 3.xフォーマットビットマップ. サイズは80x60. カラーは32bit.

    ファイル名は以下のようになる. 「年月日_時分秒」には実際は数字が当てはめられる.

    年月日_時分秒_0000000000000000_p.bmk
    年月日_時分秒_0000000000000000_p.bms
    年月日_時分秒_00000000000259a4_s.bmk
    年月日_時分秒_00000000000259a4_s.bms
    年月日_時分秒_000000000002d6c4_s.bmk
    年月日_時分秒_000000000002d6c4_s.bms
      ...
    
    最初の2つは動画の最初の絵. 特に「年月日_時分秒_0000000000000000_p.bmk」はSmartVisionで右上に表示される絵になる. 最初の2つ以外は動画の途中の絵で, 16桁の16進の数字は.sviファイルの中に一覧されている. 数字は再生開始からのミリ秒数に相当する.

  8. .esdファイルの詳細

    エクスポートすると, エクスポート元の動画フォルダのINFOファイル等と並んで, 同じファイル名を持つ.esdファイルが作られる.

    ファイルサイズは8400バイトで固定. 中身は全て0. 未使用と思われる.

HOME