视频流元数据¶
- class torchcodec.decoders.VideoStreamMetadata(duration_seconds_from_header: Optional[float], bit_rate: Optional[float], num_frames_from_header: Optional[int], num_frames_from_content: Optional[int], begin_stream_seconds: Optional[float], end_stream_seconds: Optional[float], codec: Optional[str], width: Optional[int], height: Optional[int], average_fps_from_header: Optional[float], stream_index: int)[source]¶
单个视频流的元数据。
使用
VideoStreamMetadata
的示例:- property average_fps: Optional[float]¶
流的平均帧率。如果执行了扫描,这是根据帧数和流的持续时间计算的。否则,我们回退到
average_fps_from_header
。
- begin_stream_seconds: Optional[float]¶
流的开始时间,以秒为单位(浮点数或None)。 从概念上讲,这对应于第一帧的pts。它是 通过流中所有帧的min(frame.pts)计算得出的。通常,这 等于0。
- property duration_seconds: Optional[float]¶
流的持续时间(以秒为单位)。如果执行了scan,我们会尝试从实际帧中计算持续时间。否则,我们会回退到
duration_seconds_from_header
。
- end_stream_seconds: 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]¶
流中的帧数。如果进行了scan,则对应于
num_frames_from_content
,否则对应于num_frames_from_header
。