VideoStreamMetadata¶
- class torchcodec.decoders.VideoStreamMetadata(duration_seconds_from_header: Optional[float], begin_stream_seconds_from_header: Optional[float], bit_rate: Optional[float], codec: Optional[str], stream_index: int, begin_stream_seconds_from_content: Optional[float], end_stream_seconds_from_content: Optional[float], width: Optional[int], height: Optional[int], num_frames_from_header: Optional[int], num_frames_from_content: Optional[int], average_fps_from_header: Optional[float], pixel_aspect_ratio: Optional[Fraction])[来源]¶
单个视频流的元数据。
VideoStreamMetadata
的用法示例- property average_fps: Optional[float]¶
流的平均帧率。如果执行了 扫描,则此值根据帧数和流时长计算得出。否则,我们将回退到
average_fps_from_header
。
- property begin_stream_seconds: float¶
流的开始时间,以秒为单位(浮点数)。概念上,这对应于第一帧的 pts。如果
begin_stream_seconds_from_content
不为 None,则返回该值。否则,该值为 0。
- begin_stream_seconds_from_content: Optional[float]¶
流的开始时间,以秒为单位(浮点数或 None)。概念上,这对应于第一帧的 pts。仅当进行 扫描 时,作为流中所有帧的 min(frame.pts) 来计算。通常,此值为 0。
- property duration_seconds: Optional[float]¶
流的持续时间,以秒为单位。我们尝试从实际帧中计算持续时间(如果执行了 扫描)。否则,我们回退到
duration_seconds_from_header
。如果该值也为 None,我们则从num_frames_from_header
和average_fps_from_header
计算持续时间。
- property end_stream_seconds: Optional[float]¶
流的结束时间,以秒为单位(浮点数或 None)。概念上,这对应于 last_frame.pts + last_frame.duration。如果
end_stream_seconds_from_content
不为 None,则返回该值。否则,返回duration_seconds
。
- end_stream_seconds_from_content: Optional[float]¶
流的结束时间,以秒为单位(浮点数或 None)。概念上,这对应于 last_frame.pts + last_frame.duration。仅当进行 扫描 时,作为流中所有帧的 max(frame.pts + frame.duration) 来计算。请注意,在此时间值下不播放任何帧,因此使用此值调用
get_frame_played_at()
将导致错误。最好通过用[-1]
索引VideoDecoder
对象来检索最后一帧。
- property num_frames: Optional[int]¶
流中的帧数(整数或 None)。这对应于
num_frames_from_content
(如果进行了 扫描),否则对应于num_frames_from_header
。如果该值也为 None,则帧数根据持续时间和平均帧率计算得出。
- num_frames_from_content: Optional[int]¶
TorchCodec 通过扫描流内容计算出的帧数(扫描不涉及解码)。这比
num_frames_from_header
更准确。我们建议改用num_frames
属性。(整数或 None)。