查看QTMovie持续时间属性?

时间:2013-04-24 08:14:42

标签: objective-c cocoa quicktime

我可能花了最近两周的时间搜索Apple Quicktime文档来解决看似非常基本的问题,但无济于事。这是问题......

我有几个简短的QTMovie文件,每个文件包含三个曲目 - 通常两个包含声音和视频,另外还有一个额外的视频轨道,包含字幕文本图像(总共制作两个视频轨道)。如果我在Quicktime Pro中选择其中一个曲目并将其导出为“电影到图像序列”,我可能会发现,在电影的整个过程中会有142个剧照。我的搜索方法也会报告正确的总帧数。

现在,我已经了解到你可以拍摄单帧图像,将它们添加到QTMovie,并设置各自的屏幕显示时间,无论你想要多长时间使用'attributeForKey:QTMovieDurationAttribute'。但是,我该如何再次访问这些数据呢? (这基本上就像这个过程的反面)。

在伪代码中,我想要做的是:

{
select video track #2 ...
call up the first image in the sequence ...
access and note its on-screen duration setting ...
call up the second image ...
access and note its duration ...
... repeat until done.

}

我不是在编辑了这些数据或其他内容之后 - 只是想知道如何访问视频轨道中的各个帧......以及 HECK 此时间信息隐藏在哪里QT的内容。

作为一名老年人,我认为我开始变得太老了,Quicktime是一个庞大的,通常很复杂且令人困惑的框架,所以如果有人可以帮我提出一些建议或(理想情况下)只是一个这里有几行示例代码,我真的很感激。在此先感谢: - )

1 个答案:

答案 0 :(得分:0)

好。经过几天的挖掘和实验,我终于找到了自己问题的答案。要获得我使用的(下一个)字幕图像:

// access the subtitle track
Track theTrack = [self getVideoSubtitleTrack];

// set flags to find NEXT image (ignoring the current one)...
myFlags = nextTimeStep;
// ... and search forward from current position.
GetTrackNextInterestingTime(theTrack, myFlags, playheadPos, fixed1, &nextInterestingTime, NULL);

这只能找到图像对象的开头,并且遍历轨道会找到每个连续图像的前沿。但我也想要当前文本的结束时间。

在获得开始时间之后,我尝试了七个可用的标志,发现将标志设置为'nextTimeTrackEdit'会得到结束时间。