前回の「QuickTimeフォーマットの勉強 その1」の知識量だけではQuickTimeフォーマットの全体像を知るには無理があったようで、もう少し突き詰めないと満足に再生できないことが分かったので「QuickTimeフォーマットの勉強 その2」をまとめました。

$とんすけぶろぐ
↑ムービーインスペクタ(サウンドやビデオの詳細情報)

$とんすけぶろぐ
↑シークバーを目一杯右端に持ってきたときのフレーム番号(全フレーム数)

ムービーファイルの再生時間を取得する
Media Header Atom(mdhd)にタイムスケールとデュレーション情報が記述されているのでここから取り出します。

タイムスケールとは1秒間をいくらに分けるか決める時間尺度です。
デュレーションとは長さのことです。

再生時間はデュレーション÷タイムスケールで求めることができます。

$とんすけぶろぐ
↑Media Header Atomの構造

$とんすけぶろぐ
↑サウンドトラックのmdhdから取り出すと、
タイムスケール:0xAC44(44100)
デュレーション:0x3CF84E7(63931623)
ここから再生時間は63931623/44100≒1449.697sなので24分9.69秒が求まります。

$とんすけぶろぐ
↑同様にビデオトラックのmdhdから取り出すと、
タイムスケール:0x258(600)
デュレーション:0xD45BA(869818)
ここから再生時間は869818/600≒1449.697sなので24分9.69秒となりサウンドトラックの再生時間と一致しました。

記事編集中