gpt4 book ai didi

cocoa - QTTime 将电影定位到特定时间码

转载 作者:行者123 更新时间:2023-12-03 17:42:41 24 4
gpt4 key购买 nike

我想将包含时间码轨道的 QuickTime 影片定位到用户定义的 TC 位置。我很清楚整个 timeScale、timeValue 的东西,但我不知道我错过了什么,希望你们能给我一个提示!

我想给你一个固定值的例子,以便于解释:

影片采用 NTSC 帧速率,为 29.97 fps,且不丢帧。电影从 00:59:58:00 直接开始。用户输入 TC 位置 01:00:00:10,我想定位到该确切位置。

QTMovie 的唯一选项是 setCurrentTime(QTTime time) 函数,我知道时间必须是从电影开始的“单位”中的绝对值。

所以,我需要首先计算偏移量。为此,我需要使用 QTTimeFromString 函数首先将两个时间码转换为 QTTime 结构。

这就是我的问题开始的地方!QTTimeFromString 函数需要一个格式为 "days:hours:mins:seconds.timeValue/timescale"

的字符串

我应该使用哪个值作为 timeValue?我阅读了有关 frames * 100 的内容,并且我自己想到通过乘以帧值将帧值“映射”到 2997 时间尺度范围。

两种方法都不起作用......当我使用setCurrentTimeQTTimeDecrement计算的绝对值设置到剪辑时,我总是在我想要的其他地方.. ..

我不知道我做错了什么,希望大家能帮助我!提前致谢

最佳答案

你正朝着正确的方向前进。您需要计算时间偏移并将其转换为QTTime。 QTMovie的时间是从零开始的。

NSTimeInterval timeInterval = timeOffset;

[_movie setCurrentTime:QTMakeTime((long long)(timeInterval * (double)movieTimeScale), movieTimeScale)];

movieTimeScale 通常可以是一个常量,例如 600。或者,您可以从电影中获取它:

long movieTimeScale = [_movie currentTime].timeScale;

帧速率在这里无关紧要。

关于cocoa - QTTime 将电影定位到特定时间码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8389349/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com