【问题标题】:Need to get the duration of Quicktimes in Frames with varying framerates需要在不同帧速率的帧中获取 Quicktimes 的持续时间
【发布时间】:2011-08-02 01:04:11
【问题描述】:

我需要访问 Quicktime 文件的总帧数(希望还有帧率)。我一直发现很难获得这些信息,甚至是我可以形成帧数的信息。

我一直在尝试几种不同的方法,但没有真正成功。

Quicktime Player 可以访问所有这些极好的元数据和文件信息,但我什么也没得到,这似乎很奇怪!

所以,重申一下,有没有人知道如何访问总帧持续时间,以及可能像 Quicktime Player 那样访问当前播放位置的帧数?

【问题讨论】:

    标签: objective-c macos xcode4 desktop-application


    【解决方案1】:

    我想通了!

    只是想分享我的发现,因为我很难找到这方面的任何信息。

    这将读取 Quicktime 电影,将其拆分为可用的轨道(视频、音频、tc),然后找到视频轨道。然后返回 NSLog 中的总帧数和帧率。

    QTMovie *movieFile = [QTMovie movieWithFile:moviePath error:NULL];
    NSArray *allTracks = [movieFile tracks];
    
    for(QTTrack *track in allTracks)
    {
        QTMedia *media = [track media];
    
        // Checks to make sure the quicktime media being inputted has a video track.
        if([[media attributeForKey:QTMediaTypeAttribute] isEqualToString:QTMediaTypeVideo])
        {
            NSNumber *samples = [media attributeForKey:QTMediaSampleCountAttribute];
            NSLog(@"Total Frames: %ld", (NSInteger)[samples integerValue]);
            NSLog(@"Frame Rate:  %@", [track attributeForKey:QTTrackTimeScaleAttribute]);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-07-12
      • 1970-01-01
      • 2015-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多