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)。