MSWMM(Windowsムービーメーカーのプロジェクトファイル)のファイルフォーマットが公開されていないように思えたので調べてみました。
一応、Windowsムービーメーカー6.0(Windows Vistaに同梱)で作ったファイルで調べました。
実際に調べたXML(この動画の編集プロジェクトから抽出。131KB)
ほぼ手探り状態で調べているので私にも分からない部分が多くあります。
そのため記述があいまいな部分や用語の不統一が多く存在します。
何かご存知の方がいらしたら、よろしければ掲示板またはメールにてお知らせください。
2014/12/17 管理人のやる気も利用者の需要ももうなさそうなので未完のまま終了させていただきます。
概要
ほとんどの要素はUIDという番号によって関連付けされている。
ルート要素はMovieMaker。
一覧
- AVClipArr
- AVSource
- ChildClips
- ChildFolders
- ClipStill
- ClipTrack
- ClipVideo
- ClipWMItem
- CustomFolder
- DataStr
- FileInfo
- FXParamList
- MetDat
- MovieMaker
- ParentFile
- ProducerProperties
- ProjColl
- Project
- ProjectProps
- SnapPointArray
- Srce
- Stream
- StrmArr
- StrmTrks
- TAVTransition
- TAVTransitionRight
- TEItem
- Thmb
- TIArr
- TiEffect
- TiEffectArr
- TiEffectPtr
- Timeline
- TiTitleOverlay
- TiTitleSource
- TitleUIEffect
- TiTransition
- TiTransitionArr
- TiTransitionPtr
- TmlnStillItem
- TmlnVideoItem
- Track
- TrkArr
- TrkClips
- TrkStream
- TrkTransitions
- TTFrom
- TTTo
- UID
結構盛りだくさんですな。サンプルの動画ではいろいろな機能を使ったけど、もちろんこれで全部のはずもなく。調べるのは骨が折れそうです。
各要素
AVClipArr
<AVClipArr UID="18"/>
UID属性 | "18" この要素のUID。 |
---|---|
包含している要素 | なし? |
AVクリップの配列?もし使われていればAVClipみたいな要素が子要素として含まれるのだと思われる。
AVSource
<AVSource UID="22" RefDoc="3" FileID="1" SrcAnalyszed="1" SrcModifyHigh="29999716" SrcModifyLow="-1060252011" FileSize="373901" FileType="Windows Media オーディオ/ビデオ ファイル" FileKind="2" DateTakenHigh="0" DateTakenLow="0" SrcDuration="790.871" SrcIsDV="0" SrcIsVideo="1" SrcIsAudio="1" SrcFrameRate="30.00003000003" SrcHeight="480" SrcWidth="720" SrcVideoBitrate="3669582" SrcAudioBitrate="320032" SrcAudioDataName="Data.1" SrcAudioMaxName="Data.2" SrcAudioAnalyzed="1" SrcVideoARX="640" SrcVideoARY="480"/>
UID属性 | "22" この要素のUID。 |
---|---|
RefDoc属性 | "3" なんだこりゃ? |
FileID属性 | "1" FileInfo要素で定義されるファイル情報のID。 AVソースのファイルを指定している。 |
SrcAnalyszed属性 | "1" ソースが解析されたかどうかを示すフラグ? 未知のファイルタイプだったら0になったりするのだろうか。 |
SrcModifyHigh属性 | "29999716" ソースモディファイの最大値?よくわからない。 |
SrcModifyLow属性 | "-1060252011" ソースモディファイの最大値?よくわからない。 |
FileSize属性 | "373901" ソースのファイルサイズ。 KB(1024バイト)単位だが、静止画の場合0になるようだ。 |
FileType属性 | "Windows Media オーディオ/ビデオ ファイル" ソースのファイルタイプ。 |
FileKind属性 | "2" ソースの種別。 2なら動画、4なら静止画。 |
DateTakenHigh属性 | "0" 撮影日の最大値?よくわからない。 |
DateTakenLow属性 | "0" 撮影日の最大値?よくわからない。 |
SrcDuration属性 | "790.871" 秒単位でのソースの長さ。 |
SrcIsDV属性 | "0" DVか否か。DVについてはよくわからない。 |
SrcIsVideo属性 | "1" 画像を含むか否か。動画でも静止画でも画像扱いのようだ。 |
SrcIsAudio属性 | "1" 音声を含むか否か。音声付き動画でもこのフラグが立つ。 |
SrcFrameRate属性 | "30.00003000003" 動画のフレームレート。なぜか静止画にも設定されている。 |
SrcHeight | "480" ソースの高さ。画素数単位。 |
SrcWidth | "720" ソースの幅。画素数単位。 |
SrcVideoBitrate | "3669582" 動画部分のビットレート。 |
SrcAudioBitrate | "320032" 音声部分のビットレート。 |
SrcAudioDataName | "Data.1" なんだこりゃ? |
SrcAudioMaxName | "Data.2" なんだこりゃ? |
SrcAudioAnalyzed | "1" 音声が解析されたかどうかを示すフラグ?音声が含まれていなければ0。 |
SrcVideoARX | "640" アスペクト比のX成分。 画素が長方形として格納されていた場合、SrcWidthと一致しないことがある。 |
SrcVideoARY | "480" アスペクト比のY成分。 画素が長方形として格納されていた場合、SrcHeightと一致しないことがあるかも。 |
包含している要素 | なし |
AVソース(素材)の情報を格納しているようだ。再生に必要な様々なデータが見られる。
ChildClips
ChildFolders
ClipStill
ClipTrack
ClipVideo
ClipWMItem
CustomFolder
<CustomFolder UID="17" ClpNam="/">
UID属性 | "17" この要素のUID。 |
---|---|
ClpNam属性 | "/" クリップの名前? |
包含している要素 | Srce Thmb ChildFolders ChildClips ParentFile |
カスタムフォルダ?よくわからない。
DataStr
<DataStr HOID="125" FileHigh="14" DocumentGuid="{9CB806CA-56E3-4288-9BF1-FA10B089DA3E}">
HOID属性 | "125" UIDの最大値。 UIDは連続の整数とは限らないのでUIDを持つ要素数≠HOIDになりうる。 |
---|---|
FileHigh属性 | "14" よくわからない。 |
DocumentGuid属性 | "{9CB806CA-56E3-4288-9BF1-FA10B089DA3E}" GUID。 |
包含している要素 | AVClipArr AVSource ChildFolders ClipStill ClipVideo CustomFolder FileInfo ProducerProperties SnapPointArray Stream StrmArr Thmb TIArr TiEffect TiEffectArr TiTitleOverlay TiTitleSource TiTransition TiTransitionArr TmlnStillItem TmlnVideoItem Track TrkArr |
データストリーム?
FileInfo
FXParamList
<FXParamList FXParamName="Animation(0.000000,8)" FXParamValue="TitleStandard" />
FXParamName属性 | パラメータ名。 タイトル効果の種類により様々な種類があると思われる。 括弧内のことはわからない。 |
---|---|
FXParamValue属性 | パラメータの値。 |
包含している要素 | なし |
タイトル効果のパラメータ。FXParamName値とFXParamValue値を対応付ける。
MetDat
<MetDat MDTag="PresentationTitle" MDVal="3-2" />
MDTag属性 | "PresentationTitle" メタデータ名。 Author、PresentationTitle、Descriptionのいずれかひとつ。 |
---|---|
MDVal属性 | "3-2" メタデータの値。 自由な文字列。 |
包含している要素 | なし |
メタデータ。MDTag値とMDVal値を対応付ける。
MovieMaker
<MovieMaker FileVer="4" MinFile="4" BuildNum="1376">
FileVer属性 | "4" ファイルのバージョン。 正確にはファイル形式のバージョンだと思われる。 |
---|---|
MinFile属性 | "4" よくわからない。 |
BuildNum属性 | "1376" よくわからない。 |
包含している要素 | Project |
ルート要素。
ParentFile
ProducerProperties
<ProducerProperties UID="1" PrerollImage="0" ProjectAspectRatioX="4" ProjectAspectRatioY="3">
UID | 1 プロジェクト内で一意の識別子。 |
---|---|
PrerollImage | "0" よくわからない。 |
ProjectAspectRatioX | "4" アスペクト比のX成分。 ワイド画面なら16になるはず。 |
ProjectAspectRatioY | "3" アスペクト比のY成分。 ワイド画面なら9になるはず。 |
包含している要素 | MetDat TitleUIEffect |
メタデータなどが格納されている。1ファイルに1つ?
ProjColl
Project
<Project>
属性 | なし |
---|---|
包含している要素 | DataStr ProjectProps Timeline ProjColl MetDat |
1つのプロジェクトを表す。1ファイルに1つ?
ProjectProps
SnapPointArray
<SnapPointArray UID="16" />
UID属性 | "16" 含まれるトラックの配列のUID。 |
---|---|
包含している要素 | なし |
全く分からない。なんだこりゃ?
Srce
Stream
<Stream UID="3" StrmTyp="0">
UID属性 | "3" この要素のUID。 |
---|---|
StrmTyp属性 | "0" ストリームのタイプ? おそらく"0"がビデオ(動画+音声)で"1"がオーディオだと思われる。 |
包含している要素 | StrmTrks |
ストリーム。2種類ある模様。
StrmArr
<StrmArr UID="2">
UID属性 | "2" この要素のUID。 |
---|---|
包含している要素 | UID |
ストリーム(Stream)の配列。各ストリームのUIDが子要素として含まれていると思われる。
StrmTrks
<StrmTrks UID="4" />
UID属性 | "4" 含まれるトラックの配列のUID。 |
---|---|
包含している要素 | なし |
ストリームに含まれるトラックの配列(TrkArr)を指し示している。
TAVTransition
TAVTransitionRight
TEItem
Thmb
TIArr
<TIArr UID="6">
UID属性 | "6" この要素のUID。 |
---|---|
包含している要素 | UID |
トラック内に含まれる各アイテム(TiTitleOverlay、TiTitleSource、TmlnStillItem、TmlnVideoItem)の配列。各アイテムのUIDが子要素として含まれていると思われる。
TiEffect
TiEffectArr
TiEffectPtr
Timeline
TiTitleOverlay
TiTitleSource
TitleUIEffect
<TitleUIEffect TFXName="サブタイトル" TFXGuid="TFX\Subtitle" TFXID="{CB66BFC1-7B57-4689-AF72-5B71DD767FDC}" TFXEffectType="2" TFXImage="13" TFXSpeed="1" TFXDuration="0">
TFXName | "サブタイトル" |
---|---|
TFXGuid | "TFX\Subtitle" |
TFXID | "{CB66BFC1-7B57-4689-AF72-5B71DD767FDC}" |
TFXEffectType | "2" |
TFXImage | "13" |
TFXSpeed | "1" |
TFXDuration | "0" |
包含している要素 | FXParamList |
文字を入れる機能に関係している?よくわからない。
TiTransition
TiTransitionArr
<TiTransitionArr UID="7">
UID属性 | "7" この要素のUID。 |
---|---|
包含している要素 | UID |
トランジション(TiTransition)の配列。各トランジションのUIDが子要素として含まれていると思われる。
TiTransitionPtr
TmlnStillItem
TmlnVideoItem
Track
<Track UID="5" TrackTyp="0" TrackFPS="30" TrkVolume="1">
UID属性 | "5" この要素のUID。 |
---|---|
TrackTyp属性 | "0" トラックのタイプ。 "0"が通常のビデオトラックで"5"がタイトルトラックだと思われる。 |
TrackFPS属性 | "30" トラックのフレームレート。 |
TrkVolume属性 | "1" トラックのボリューム。 音声を含まないトラックの場合にはこの属性は付かない。 |
包含している要素 | TrkClips TrkStream TrkTransitions |
トラック。
TrkArr
<TrkArr UID="4">
UID属性 | "4" この要素のUID。 |
---|---|
包含している要素 | UID |
トラック(Track)の配列。各トラックのUIDが子要素として含まれていると思われる。
TrkClips
<TrkClips UID="6" />
UID属性 | "6" トラック内に含まれるアイテムの配列のUID。 |
---|---|
包含している要素 | なし |
このトラック内に含まれるアイテムの配列(TIArr)を指定する。
TrkStream
<TrkStream UID="3" />
UID属性 | "3" ストリームのUID。 |
---|---|
包含している要素 | なし |
このトラックを含むストリーム(Stream)を指定する。
TrkTransitions
<TrkTransitions UID="7" />
UID属性 | "7" トラック内で使用されるトランジションの配列のUID。 |
---|---|
包含している要素 | なし |
このトラック内で使用されるトランジションの配列(TiTransitionArr)を指定する。
TTFrom
TTTo
UID
<UID UID="3" />
UID属性 | "3" この要素のUID。 |
---|---|
包含している要素 | なし |
UID。この要素単独では目的なくUIDを指定しているに過ぎず、指定されているUIDの意味は親要素によって変動する。