メディア情報の調査

■対応メディア(ファイル形式やコンテナと呼ばれるもの)

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 に対応しています。
 但し、非同期化されたタグには対応していません。