QTKit または 10.5 以降をターゲットとする OS X の古い QuickTime API を使用して、QuickTime ムービーから次の情報を抽出する方法を判断するのが難しいと感じています。
- 使用されるビデオおよびオーディオ コーデック (例: "H.264")
- ビデオとオーディオのビットレート (例: 64 kbps)
- 寸法
私が遭遇した特定の問題は次のとおりです。
1) 私が見つけたビデオとオーディオのコーデック名への唯一の手段は、 と の使用を伴いますImageDescriptionHandle
。SoundDescriptionHandle
どちらも Carbon のみのメソッドNewHandleClear
とDisposeHandle
を必要とし、32 ビットのみの Media オブジェクトを必要とするようです。Carbon フレームワークを必要とせず、64 ビットと互換性のある、より最新の方法はありますか?
2) ビットレートについては、GetMediaDataSizeTime64 を取得し、トラックの長さ (秒単位) で割っています。ただし、オーディオ トラックが 1 つの場合、そのメソッドは 128 kbps の値を返しますがQTSoundDescriptionGetProperty
、オーディオ トラック メディアとパラメーターを指定して呼び出すと、kQTAudioPropertyID_FormatString
"64 kbps" の文字列が返されます。これら 2 つの値が異なるのはなぜですか。トラックのビットレートを計算するより良い方法はありますか?
3)特定の映画について、[QTMovie movieAttributes] objectForKey:QTMovieNaturalSizeAttribute]
または によって返される寸法が正しくありません。[QTTrack attributeForKey:QTTrackDimensionsAttribute]
返されるサイズは 720 x 480 ですが、QuickTime Player の実際の表示サイズは 640 x 480 です。プレーヤーの情報ウィンドウには、サイズ文字列「720 x 480 (640 x 480)」が表示されます。実際の映画の寸法を決定するより良い方法はありますか?
前もって感謝します!