快捷方式

clips_at_regular_timestamps

torchcodec.samplers.clips_at_regular_timestamps(decoder, *, seconds_between_clip_starts: float, num_frames_per_clip: int = 1, seconds_between_frames: Optional[float] = None, sampling_range_start: Optional[float] = None, sampling_range_end: Optional[float] = None, policy: Literal['repeat_last', 'wrap', 'error'] = 'repeat_last') FrameBatch[source]

以规则(等间隔)的时间戳采样 剪辑

注意

为了与现有的采样 API(例如 torchvision)保持一致,此采样器接受一个 seconds_between_clip_starts 参数而不是 num_clips。如果您认为支持 num_clips 会很有用,请通过 提交功能请求 告知我们。

参数:
  • decoder (VideoDecoder) – 用于采样剪辑的 VideoDecoder 实例。

  • seconds_between_clip_starts (float) – 每个剪辑起始点之间的间隔(以秒为单位)。

  • num_frames_per_clip (int, 可选) – 每个剪辑的帧数。默认值:1。

  • seconds_between_frames (floatNone, 可选) – 剪辑内每帧之间的时间(以秒为单位)。更准确地说,这定义了*帧采样点*之间的时间,即我们采样帧的时间戳。由于帧跨越时间间隔,因此剪辑内帧的实际起始时间可能不会完全按照 seconds_between_frames 的间隔排列 - 但平均而言会如此。默认值为 None,这将设置为平均帧时长(1/average_fps)。

  • sampling_range_start (floatNone, 可选) – 采样范围的起始时间,它定义了剪辑可能*开始*的第一个时间戳(以秒为单位)。默认值:None,对应视频的开始。(注意:有些视频从负值开始,这就是为什么默认值不是 0)。

  • sampling_range_end (Optional[float]None, 可选) – 采样范围的结束时间,它定义了剪辑可能*开始*的最后一个时间戳(以秒为单位)。此值为独占(不包含),即剪辑只能在 [sampling_range_start, sampling_range_end) 范围内开始。如果为 None(默认值),则该值会自动设置,以确保剪辑不会超出视频结尾,即设置为 end_video_seconds - (num_frames_per_clip - 1) * seconds_between_frames。当剪辑超出视频结尾时,policy 参数定义了如何构建此类剪辑。

  • policy (str, 可选) –

    定义了如何构建超出视频结尾的剪辑。最好用一个例子来描述:假设视频中最后一个有效的(可定位的)时间戳是 10.9,并且采样了一个剪辑,从时间戳 10.5 开始,`num_frames_per_clip=5` 且 `seconds_between_frames=0.2`,那么该剪辑中帧的采样时间戳应该是 [10.5, 10.7, 10.9, 11.1, 11.2]。但 11.1 和 11.2 是无效时间戳,因此 `policy` 参数定义了如何使用有效的采样时间戳替换这些帧

    • “repeat_last”:重复剪辑中最后一个有效帧。我们将获得在时间戳 [10.5, 10.7, 10.9, 10.9, 10.9] 采样的帧。

    • “wrap”:循环到剪辑的开头。我们将获得在时间戳 [10.5, 10.7, 10.9, 10.5, 10.7] 采样的帧。

    • “error”:引发错误。

    默认值为“repeat_last”。请注意,当 sampling_range_end=None(默认值)时,此 policy 参数不太可能相关。

返回值:

采样的 剪辑,作为 5D FrameBatch。`data` 字段的形状为 (num_clips, num_frames_per_clips, …),其中 … 取决于 VideoDecoderdimension_order 参数,可以是 (H, W, C) 或 (C, H, W)。`pts_seconds` 和 `duration_seconds` 字段的形状为 (num_clips, num_frames_per_clips)。

返回类型:

FrameBatch

使用 clips_at_regular_timestamps 的示例

如何采样视频剪辑

如何采样视频剪辑

文档

访问 PyTorch 的全面开发者文档

查看文档

教程

获取针对初学者和高级开发者的深入教程

查看教程

资源

查找开发资源并获得问题解答

查看资源