メディア情報の調査
■対応メディア(ファイル形式やコンテナと呼ばれるもの)
a)Microsoft系
・AVI / AVI2 (OpenDML AVI) ※1
・Windows Media Video / Audio
・DivX Media Format
・DVR-ms ※2
・Google Video (.gvi)
※1 DV-AVI (Type1-DV)には対応していません。
※2 音声の判定が対応できていません。
b)MPEG系
・MPEG1/Video/Audio/System
・MPEG2/Video/Audio
・MPEG2/System-PS
・MPEG2/System-TS
・MPEG2/System-TS(192byte)
・VideoCD (CD/XA)
・DVD-Video (VOB)
・DVD-VR (VRO)
・AC-3 (Dolby Digital)
・AAC
・DTS
※HE-AACは部分対応です。
c)Xpih.org/Ogg系
・ogm (Ogg Media) 音声がVorbis以外のOGMにも対応しています。
・Ogg Vorbis
・Ogg Theora まだ仮対応です。
d)ISO MP4系
・ISO/MPEG-4
・3GPP
・3GPP2
・Mobile MP4
・AMC
・モバイルムービー
・メモリースティックビデオ
・H.264/AVC(MP4コンテナ)
e)Apple QuickTime系
・QucikTime Movie
・Apple MP4 Audio iTunesでエンコードされた形式です。
※QucikTime Movie のうち、データが圧縮されているものは未対応です
(Compress/Reference)
f)Matroska系
・Matroska Video
・Matroska Audio
g)RealMedia系
・Real Media Video(CBR)
・Real Media Video(VBR)
・Real Media Audio
h)NullsoftVideo系
・Nullsoft Video
・Nullsoft Audio
・Ultravox配信データ
i)Flash系
・Flash Video
j)その他
・XVD
・Nancy
■対応コーデック
・MS系映像コーデック 約390種類
・MS系音声コーデック 約160種類
・QT系映像コーデック 約 60種類
・QT系音声コーデック 約 20種類
・その他のコーデック 約 50種類
■各コンテナ/コーデックの詳細
・コンテナ:Matroska
未対応のコーデックが使われていた場合は、matroskaのCodecIDをそのまま表示します。
・コンテナ:OGM
[編集]-[厳重チェック]すると、全パケットを走査することで、ファイル途中の破損チェックもできます。
OGMでは一般的に、音声にはVorbisが使われますが、AACやMP3が使われることもあります。MMname2はこれらにも対応しています。
・コンテナ:MPEG2-TS
PCR_PIDタイプのストリーム以外は、再生時間が取得できていません。
調べ方が分からないので、ご存じの方は連絡ください。
・コンテナ:XVD
XVD に関しては、必ずDirectShowを使って情報取得します。
・映像コーデック:DivX5.xx
少数以下のマイナーバージョンまで判定します。
データパケットの先頭付近にあるタグ情報を基に、詳細バージョンを判定しています。
判定できなかった場合は、(映像情報)-(その他情報)に、BuildNo
DivX50xxxxx のような内容が表示されているので、この情報を教えて頂ければ次バージョンで対応できると思います。
タグ情報が無いファイル(例えば、XviDでエンコードして、FourCCだけDX50に書き換えた場合等)は、DivX5のビルドタグが見つからない旨のメッセージが表示されます。
・映像コーデック:XviD
少数以下のマイナーバージョンまで判定します。
ver1.0.0 と ver1.0.1以降 は割と正確に判定できますが、それ以前のバージョンは少々曖昧です。
また、これは正確にいうと、コーデックのバージョンではなくビットストリームのバージョンです。
・音声コーデック:MP3
XingヘッダおよびVBRIヘッダでVBR判定しています。
・音声コーデック:AAC 、HE-AAC
現バージョンではHE-AACをAAC LCと見誤る場合があります。
具体的には、ADTSヘッダ付きAACと、RealVideoのHE-AACは正確に判定できますが、それ以外はAAC
LCと判定してしまいます。
原因も分かっていますが、AACは構造がややこしいので、手こずっています。
■不完全ファイル(尻切れファイル)チェック
・AVI、WMV、WMA、VideoCD、DVR-ms
ファイルヘッダ(RIFFヘッダ)にあるサイズ情報を基に尻切れ判定します。
・Ogg Media(OGM)
最終パケットのデータ長が正しいか否かで、尻切れファイルの判定をします。
厳重チェックした場合は、全パケットのチェックを行います。
・MPEG1/System、MPEG2/System-PS
ファイルの末尾付近にMPEGの終了マークがあるか否かで尻切れ判定します。
終了マークが無くても、最終パケットのデータ長が正しければ、正常なファイルとして扱います。
・Matroska
EBMLヘッダとSegmentのサイズから尻切れ判定します。
・NullSoftVideo
ヘッダ情報にあるファイルサイズから、尻切れ判定します。
・Flash Video
ファイルの終端にあるPreviousTagSizeとパケットサイズから、尻切れ判定します。
MetaDataにファイルサイズが書かれている場合は、MetaDataと実ファイルサイズから、尻切れ判定します。
■ID3タグ
ID3タグ v1.0(v1.1)、v2.2、v2.3、v2.4 に対応しています。
但し、非同期化されたタグには対応していません。