0

ムービーがドロップ フレームかノンドロップ フレームかを調べる必要があります。

xcode ビデオ フレームワーク (QTMovie または AVFoundation の何か) のビデオ ファイルの属性でそれを見つけようとしています。あまり運がない。

FCP-X XML ファイルに必要な情報を入力するためにこれを行っています。

誰もこれについて経験がありますか?

重要な注意事項、私は 64 ビット環境で作業しており、そこにとどまらなければなりません。

4

1 に答える 1

1

を使用CMTimeCodeFormatDescriptionGetTimeCodeFlags()して、特定のタイムコード形式の説明 ref のタイム コード フラグを取得できます。AVAssetTrackにそのformatDescriptions.

次のようになると思います。

BOOL isDropFrame (AVAssetTrack* track)
{
    BOOL result = NO;
    NSArray* descriptions = [track formatDescriptions];
    NSEnumerator* descriptionEnum = [descriptions objectEnumerator];
    CMFormatDescriptionRef nextDescription;
    while ((!result) && ((nextDescription = (CMFormatDescriptionRef)[descriptionEnum nextObject]) != nil))
    {
        if (CMFormatDescriptionGetMediaType(nextDescription) == kCMMediaType_TimeCode)
        {
            uint32_t timeCodeFlags = CMTimeCodeFormatDescriptionGetTimeCodeFlags ((CMTimeCodeFormatDescriptionRef)nextDescription);
            result = ((timeCodeFlags & kCMTimeCodeFlag_DropFrame) != 0);
        }
    }
    return result;
}
于 2012-08-28T03:20:35.963 に答える