KB紹介: 特定のAVIファイルをWMP12が再生できない件 (2653030)

こんにちは。日本マイクロソフトの我孫子です。Windows7 の Windows Media Player12 に対する Hot Fix 2653030 が出ました。当チームで調査解析を担当した案件になります。

Article ID: 2653030 - Last Review: February 16, 2012 - Revision: 1.0

Windows Media Player 12 does not play some AVI files that were created by a third-party and that include an AVI super index chunk correctly in Windows 7

https://support.microsoft.com/kb/2653030

これは、OpenDML 準拠の AVI ファイルにおいて、それらが特定の構造を持つ場合に、WMP12 (より正確には Media Foundation) で再生できないというものです。

OpenDML 準拠のAVIファイルは、インデックスに着目すると一般に以下のような構造となっています。

  • ‘indx’ AVI_INDEX_OF_INDEXES (AVI Super Index Chunk)
    • ‘ix00’ AVI_INDEX_OF_CHUNKS (AVI Standard Index Chunk) for Stream #00
      • ‘00db’ (Video Frame)
    • ‘ix01’ AVI_INDEX_OF_CHUNKS (AVI Standard Index Chunk) for Stream #01
      • ‘01wb’ (Audio Frame)

問題のAVIファイルは、AVI Standard Index Chunk が1つのエントリだけを含む場合です。ビデオの場合は、1フレームしかインデックスに記載されていない場合になります。例えば、100フレームからなるビデオの場合、通常はインデックスチャンクは1つだけ存在し、そのインデックスチャンクに100フレーム分のエントリが記載されています。ところが、例えばインデックスチャンクが3つ存在し、それぞれ 49フレーム、1フレーム、50フレーム、といった具合の構造になっている場合があります。そのような構造も OpenDMLの規格には適合しているのですが、Media Foundation では正しく認識できないため、Media Foundation を利用して AVIファイルを読み込む WMP12でも再生できませんでした。

Windows で作成したAVIファイルではそのような構造にはなりませんので、この問題は発生しません。特定のサードパーティ製のプログラムやハードウェアで作成したAVIファイルではそのような構造を持つものがあります。

ご迷惑をお掛けして申し訳ありませんが、該当する方はこの Hot Fix を適用いただければと思います。よろしくお願いいたします。