AudioDecoder¶
- class torchcodec.decoders.AudioDecoder(source: Union[str, Path, RawIOBase, BufferedReader, bytes, Tensor], *, stream_index: Optional[int] = None, sample_rate: Optional[int] = None)[源码]¶
一个单流音频解码器。
它可以用于解码纯音频文件(例如 mp3、wav 等)中的音频,或解码包含音频流的视频(例如 mp4 视频)中的音频。
返回的样本是归一化到 [-1, 1] 的浮点样本
- 参数:
source (str,
Pathlib.path
, bytes,torch.Tensor
或类文件对象) –视频或音频的来源
如果为
str
:本地路径或视频或音频文件的 URL。如果为
Pathlib.path
:本地视频或音频文件的路径。如果为
bytes
对象或torch.Tensor
:原始编码音频数据。如果为类文件对象:我们按需从对象读取视频数据。对象必须公开 read(self, size: int) -> bytes 和 seek(self, offset: int, whence: int) -> bytes 方法。更多信息请参见:通过类文件支持流式传输数据。
stream_index (int, 可选) – 指定从文件中的哪个流解码样本。请注意,此索引在所有媒体类型中是绝对的。如果未指定,则使用最佳流。
sample_rate (int, 可选) – 解码样本的期望输出采样率。默认情况下,样本以其原始采样率返回。
- 变量:
metadata (AudioStreamMetadata) – 音频流的元数据。
stream_index (int) – 此解码器正在从中检索样本的流索引。如果在初始化时提供了流索引,则此值相同。如果未指定,则使用最佳流。
使用
AudioDecoder
的示例- get_all_samples() AudioSamples [源码]¶
返回源中的所有音频样本。
要解码特定范围内的样本,请使用
get_samples_played_in_range()
。- 返回:
文件中的样本。
- 返回类型:
- get_samples_played_in_range(start_seconds: float = 0.0, stop_seconds: Optional[float] = None) AudioSamples [源码]¶
返回给定范围内的音频样本。
样本位于半开区间 [start_seconds, stop_seconds) 内。
要解码从头到尾的所有样本,可以在调用此方法时将
start_seconds
和stop_seconds
保留为默认值,或使用get_all_samples()
作为更方便的别名。- 参数:
- 返回:
指定范围内的样本。
- 返回类型: