前回の「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秒となりサウンドトラックの再生時間と一致しました。
記事編集中

↑ムービーインスペクタ(サウンドやビデオの詳細情報)

↑シークバーを目一杯右端に持ってきたときのフレーム番号(全フレーム数)
ムービーファイルの再生時間を取得する
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秒となりサウンドトラックの再生時間と一致しました。
記事編集中