gpt4 book ai didi

ios - 试图了解 CMTime

转载 作者:IT王子 更新时间:2023-10-29 07:37:59 29 4
gpt4 key购买 nike

我看过一些examples of CMTime (三个单独的链接),但我还是不明白。我将 AVCaptureSession 与 AVCaptureVideoDataOutput 一起使用,我想设置输出的最大和最小帧速率。我的问题是我只是不理解 CMTime 结构。

显然 CMTimeMake(value, timeScale) 应该每 1/timeScale 秒给我一个值帧,总共 value/timeScale 秒,还是我弄错了?

为什么没有在任何地方记录它以解释它的作用?

如果它确实能像那样工作,我如何让它拥有无限数量的帧?

如果它真的很简单,我很抱歉,但还没有点击。

最佳答案

CMTime 结构表示存储为有理数的时间长度(参见 CMTime Reference )。 CMTime 有一个value 和一个timescale 字段,代表时间value/timescale seconds

CMTimeMake 是一个返回CMTime结构的函数,例如:

CMTime t1 = CMTimeMake(1, 10); // 1/10 second = 0.1 second
CMTime t2 = CMTimeMake(2, 1); // 2 seconds
CMTime t3 = CMTimeMake(3, 4); // 3/4 second = 0.75 second
CMTime t4 = CMTimeMake(6, 8); // 6/8 second = 0.75 second

最后两个时间值t3t4表示相同的时间值,因此

CMTimeCompare(t3, t4) == 0

如果您设置 AVCaptureSessionvideoMinFrameDuration 是没有区别的,如果您设置

connection.videoMinFrameDuration = CMTimeMake(1, 20); // or
connection.videoMinFrameDuration = CMTimeMake(2, 40);

在这两种情况下,帧之间的最小时间间隔都设置为 1/20 = 0.05 秒。

关于ios - 试图了解 CMTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12902410/

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