0

我需要确定一部电影是丢帧还是非丢帧。

我试图在其中一个 xcode 视频框架(QTMovie 或来自 AVFoundation 的东西)中的视频文件的属性中找到它。运气不太好。

我这样做是为了在 FCP-X XML 文件中填写必要的信息。

有人对这个有经验么?

重要说明,我在 64 位环境中工作,并且必须留在那里。

4

1 回答 1

1

您可以使用CMTimeCodeFormatDescriptionGetTimeCodeFlags()获取给定时间码格式描述参考的时间码标志。您可以通过询问AVAssetTrackformatDescriptions.

我认为它看起来像这样:

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 回答