目录

torchaudio.io

StreamReader 系列

class src strformat Optional[str] = Noneoption Optional[Dict[str str]] = buffer_size:int = 4096[来源]torchaudio.io.StreamReader

逐块获取和解码音频/视频流。

关于这个类的详细用法,请参考教程。

参数
  • srcstr 或类似文件的对象) –

    媒体来源。 如果是 string-type,则它必须是 FFmpeg 可以的资源指示符 处理。这包括文件路径、URL、设备标识符或 filter 表达式。支持的值取决于找到的 FFmpeg 在系统中。

    如果是类文件对象,则必须支持签名为 read(size: int) -> 字节read 方法。 此外,如果类文件对象具有 seek 方法,则它使用 解析媒体元数据时的方法。这提高了可靠性 编解码器检测。seek 方法的签名必须是 seek(offset: int, whence: int) -> int

    请参阅以下内容了解预期的签名和行为 的 readseek 方法。

  • formatstrNone可选) –

    覆盖输入格式,或指定源声音设备。 默认值:(无覆盖或设备输入)。None

    此参数适用于两种不同的用例。

    1. 覆盖源格式。 当 Importing 数据不包含 Headers 时,这非常有用。

    2. 指定输入源设备。 这允许从硬件设备加载媒体流, 例如麦克风、摄像头和屏幕或虚拟设备。

    注意

    此选项大致对应于 command 的 option。 请参阅 ffmpeg 文档,了解可能的值。-fffmpeg

    https://ffmpeg.org/ffmpeg-formats.html

    对于设备访问,可用值因硬件(AV 设备)和 软件配置 (FFmpeg 构建)。

    https://ffmpeg.org/ffmpeg-devices.html

  • optionDict of str to str可选) –

    初始化格式上下文(打开源)时传递的自定义选项。

    您可以使用此参数在将 input 源传递给 decoder 之前更改 input 源。

    违约:。None

  • buffer_sizeint) –

    内部缓冲区大小(以字节为单位)。仅当 src 是类似文件的对象时使用。

    默认值:4096

教程使用:StreamReader
财产 num_src_streams

在提供的媒体源中找到的流数。

类型

int

财产 num_out_streams

客户端代码配置的输出流数。

类型

int

财产 default_audio_stream

默认音频流的索引。 如果没有音频流None

类型

可选[int]

财产 default_video_stream

默认视频流的索引。 如果没有视频流None

类型

可选[int]

get_src_stream_info(i inttorchaudio.io._stream_reader。StreamReaderSourceStream[来源]

获取源流的元数据

参数

iint) – 流索引。

返回

源流

get_out_stream_info(i inttorchaudio.io._stream_reader。StreamReaderOutputStream[来源]

获取输出流的元数据

参数

iint) – 流索引。

返回

输出流

seek(时间戳float[来源]

将流查找到给定的时间戳 [秒]

参数

timestampfloat) – 目标时间(以秒为单位)。

add_basic_audio_stream(frames_per_chunkint,buffer_chunk_size:int = 3,stream_index:可选[int] = 解码器Optional[str] = decoder_option:Optional[Dict[str str]] = 格式可选[str] = 'fltp'sample_rate:可选[int] = None[来源]

添加输出音频流

参数
  • frames_per_chunkint) – 作为一个区块返回的帧数。 如果源流在缓冲足够多的帧之前耗尽, 然后,块将按原样返回。

  • buffer_chunk_sizeint可选) –

    内部缓冲区大小。 当缓冲的 chunk 数量超过此数量时,旧帧 下降。

    违约:。3

  • stream_indexintNone可选) – 源音频流索引。 如果省略,则使用 。

  • 解码器strNone可选)–

    要使用的解码器的名称。 如果提供,请使用指定的解码器,而不是默认的解码器。

    要列出可用的解码器,您可以使用 ffmpeg -decoders 命令。

    违约:。None

  • decoder_optiondictNone可选) –

    传递给 decoder 的选项。 从 str 映射到 str。

    要列出解码器的解码器选项,可以使用 ffmpeg -h decoder=<DECODER> 命令。

    违约:。None

  • formatstr可选) –

    输出样本格式 (精度)。

    如果 ,则输出块具有对应于 源音频的精度。None

    否则,将转换样本并更改输出 dtype 如下。

    • "u8p":输出为 type。torch.uint8

    • "s16p":输出为 type。torch.int16

    • "s32p":输出为 type。torch.int32

    • "s64p":输出为 type。torch.int64

    • "fltp":输出为 type。torch.float32

    • "dblp":输出为 type。torch.float64

    违约:。"fltp"

  • sample_rateintNone可选) – 如果提供,则对音频进行重新采样。

add_basic_video_stream(frames_per_chunkint,buffer_chunk_size:int = 3,stream_index:可选[int] = 解码器Optional[str] = decoder_option:Optional[Dict[str str]] = hw_accel:可选[str] = 格式可选[str] = 'rgb24'frame_rate: 可选[int] = width 可选[int] = Noneheight 可选[int] = None[来源]

添加输出视频流

参数
  • frames_per_chunkint) – 作为一个区块返回的帧数。 如果源流在缓冲足够多的帧之前耗尽, 然后,块将按原样返回。

  • buffer_chunk_sizeint可选) –

    内部缓冲区大小。 当缓冲的 chunk 数量超过此数量时,旧帧 下降。

    违约:。3

  • stream_indexintNone可选) – 源视频流索引。 如果省略,则使用 。

  • 解码器strNone可选)–

    要使用的解码器的名称。 如果提供,请使用指定的解码器,而不是默认的解码器。

    要列出可用的解码器,您可以使用 ffmpeg -decoders 命令。

    违约:。None

  • decoder_optiondictNone可选) –

    传递给 decoder 的选项。 从 str 映射到 str。

    要列出解码器的解码器选项,可以使用 ffmpeg -h decoder=<DECODER> 命令。

    违约:。None

  • hw_accelstrNone可选) –

    启用硬件加速。

    当视频在 CUDA 硬件上解码时,例如 decode=“h264_cuvid”,将 CUDA 设备指示器传递给 hw_accel(即 hw_accel=“cuda:0”)将放置结果帧 直接在特定的 CUDA 设备上。

    如果为 None,则帧将移动到 CPU 内存。 违约:。None

  • formatstr可选) –

    更改图像通道的格式。有效值为

    • "rgb24": 8 位 * 3 个通道 (R, G, B)

    • "bgr24": 8 位 * 3 个通道(B、G、R)

    • "yuv420p": 8 位 * 3 个通道(Y、U、V)

    • "gray":8 位 * 1 通道

    违约:。"rgb24"

  • frame_rateintNone可选) – 如果提供,请更改帧速率。

  • widthintNone可选) – 如果提供,请更改图像宽度。单位:像素。

  • heightintNone可选) – 如果提供,请更改图像高度。单位:像素。

add_audio_stream(frames_per_chunkint,buffer_chunk_size:int = 3,stream_index:可选[int] = 解码器Optional[str] = decoder_option:Optional[Dict[str str]] = filter_desc:可选[str] = [源]

添加输出音频流

参数
  • frames_per_chunkint) – 作为一个区块返回的帧数。 如果源流在缓冲足够多的帧之前耗尽, 然后,块将按原样返回。

  • buffer_chunk_sizeint可选) –

    内部缓冲区大小。 当缓冲的 chunk 数量超过此数量时,旧帧 下降。

    违约:。3

  • stream_indexintNone可选) – 源音频流索引。 如果省略,则使用 。

  • 解码器strNone可选)–

    要使用的解码器的名称。 如果提供,请使用指定的解码器,而不是默认的解码器。

    要列出可用的解码器,您可以使用 ffmpeg -decoders 命令。

    违约:。None

  • decoder_optiondictNone可选) –

    传递给 decoder 的选项。 从 str 映射到 str。

    要列出解码器的解码器选项,可以使用 ffmpeg -h decoder=<DECODER> 命令。

    违约:。None

  • filter_descstrNone可选) – 筛选条件描述。 可用过滤器的列表可在 https://ffmpeg.org/ffmpeg-filters.html 中找到请注意,不支持复杂过滤器。

add_video_stream(frames_per_chunkint,buffer_chunk_size:int = 3,stream_index:可选[int] = 解码器Optional[str] = decoder_option:Optional[Dict[str str]] = hw_accel:可选[str] = filter_desc:可选[str] = None[来源]

添加输出视频流

参数
  • frames_per_chunkint) – 作为一个区块返回的帧数。 如果源流在缓冲足够多的帧之前耗尽, 然后,块将按原样返回。

  • buffer_chunk_sizeint可选) –

    内部缓冲区大小。 当缓冲的 chunk 数量超过此数量时,旧帧 下降。

    违约:。3

  • stream_indexintNone可选) – 源视频流索引。 如果省略,则使用 。

  • 解码器strNone可选)–

    要使用的解码器的名称。 如果提供,请使用指定的解码器,而不是默认的解码器。

    要列出可用的解码器,您可以使用 ffmpeg -decoders 命令。

    违约:。None

  • decoder_optiondictNone可选) –

    传递给 decoder 的选项。 从 str 映射到 str。

    要列出解码器的解码器选项,可以使用 ffmpeg -h decoder=<DECODER> 命令。

    违约:。None

  • hw_accelstrNone可选) –

    启用硬件加速。

    当视频在 CUDA 硬件上解码时,例如 decode=“h264_cuvid”,将 CUDA 设备指示器传递给 hw_accel(即 hw_accel=“cuda:0”)将放置结果帧 直接在特定的 CUDA 设备上。

    如果为 None,则帧将移动到 CPU 内存。 违约:。None

  • filter_descstrNone可选) – 筛选条件描述。 可用过滤器的列表可在 https://ffmpeg.org/ffmpeg-filters.html 中找到请注意,不支持复杂过滤器。

remove_stream(i int[来源]

删除输出流。

参数

iint) – 要删除的输出流的索引。

process_packet(timeout 可选 [float] = Nonebackoff float = 10.0int[源]

读取源媒体并处理一个数据包。

如果成功读取数据包,则数据包中的数据将 解码并传递给相应的输出流处理器。

如果数据包属于未连接到 output 流,则数据将被丢弃。

当源到达 EOF 时,它会触发所有输出流 处理器进入耗尽模式。所有输出流处理器 刷新待处理的帧。

参数
  • timeoutfloatNone可选) –

    超时(以毫秒为单位)。

    此参数在失败时更改重试行为 由于底层媒体资源是 暂时不可用。

    使用麦克风等媒体设备时,存在以下情况 底层缓冲区未就绪。 此时调用该函数会导致系统报告 EAGAIN(资源暂时不可用)。

    • >=0:继续重试,直到给定的时间过去。

    • 0<:永远重试。

    • None:无需重试并立即引发异常。

    违约:。None

    注意

    仅当 reason 为 不可用的资源。如果失败的原因是 其他。

  • backoff浮点数,可选) –

    重试前等待的时间(以毫秒为单位)。

    此选项仅在 timeout 生效时有效。(不是None)

    超时有效时,此 backoff 控制函数的时间 应该等待一段时间,然后再重试。违约:。10.0

返回

0数据包已正确处理。调用方可以保留 调用该函数可以缓冲更多的帧。

1主播到达了 EOF。所有输出流处理器 已刷新待处理的帧。调用方应停止调用 此方法。

返回类型

int

process_all_packets()[来源]

处理数据包,直到它到达 EOF。

is_buffer_ready()bool[来源]

如果所有输出流都至少填充了一个块,则返回 true。

pop_chunks()Tuple[Optional[torch.张量]][来源]

从所有输出流缓冲区中弹出一个 chunk。

返回

缓冲区内容。 如果缓冲区不包含任何帧,则返回 None

返回类型

元组[可选[Tensor]]

stream(timeout 可选[float] = Nonebackoff float = 10.0) → Iterator[Tuple[可选[torch.Tensor]...]][来源]

返回生成输出张量的迭代器

参数
  • timeoutfloatNone可选) – 请参阅。(默认:None)

  • backoff (float, optional) ((返回) (floatoptional) (返回) ) – 请参阅。(默认:10.0)

返回

Iterator 生成与输出相对应的块元组 由客户端代码定义的流。 如果输出流已用尽,则替换 chunk Tensor 跟。 如果所有输出流都用完,则迭代器将停止。None

返回类型

Iterator[Tuple[Optional[torch.Tensor],..]]

StreamReaderSourceStream

[来源]torchaudio.io.StreamReaderSourceStream

源流的元数据。当表示 除音频视频以外的媒体类型。

当源流为音频视频类型,并且 报告其他特定于媒体的属性时, 分别使用。SourceAudioStreamSourceVideoStream

media_type str

流的类型。 音频视频数据字幕附件和空字符串之一。

注意

仅支持输出音频和视频流。

注意

静止图像(如 PNG 和 JPEG 格式)将报告为视频

codec str

编解码器的简称。例如 和 。"pcm_s16le""h264"

codec_long_name str

编解码器的详细名称。

例如“PCM 签名的 16 位小端”和“H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10”。

format 可选[str]

媒体格式。例如 和 。"s16""yuv420p"

常见的音频值包括;

  • "u8", : 无符号 8 位无符号 interger。"u8p"

  • "s16", : 16 位有符号整数。"s16p"

  • "s32", : 32 位有符号整数。"s32p"

  • "flt", : 32 位浮点。"fltp"

注意

末尾的 p 表示格式为 Planar。 通道被分组在一起,而不是散布在内存中。

bit_rate 可选 [int]

流的比特率(以位/秒为单位)。 这是基于流的初始几帧的估计值。 对于容器格式和可变比特率,它可以为 0。

num_frames 可选 [int]

流中的帧数

bits_per_sample 可选 [int]

这是每个 output sample 中的有效位数。 对于压缩格式,它可以为 0。

StreamReaderSourceAudioStream

[来源]torchaudio.io.StreamReaderSourceAudioStream

音频源流的元数据。

除了 报告的属性外,还有 。 当源流为 audio type 时,以下附加属性 被报告。

sample_rate 浮点

音频的采样率。

num_channels 整数

通道数。

StreamReaderSourceVideoStream

[来源]torchaudio.io.StreamReaderSourceVideoStream

视频源流的元数据。

除了 报告的属性外,还有 。 当源流为 audio type 时,以下附加属性 被报告。

width 整数

视频帧的宽度(以像素为单位)。

height 整数

视频帧的高度(以像素为单位)。

frame_rate 浮点

帧速率。

StreamReaderOutputStream (流读取器输出流)

source_indexint,filter_description:str[来源]torchaudio.io.StreamReaderOutputStream

输出流()

在 上配置的输出流。

source_index 整数

此输出流连接的源流的索引。

filter_description str

应用于源流的筛选条件图的描述。

文档

访问 PyTorch 的全面开发人员文档

查看文档

教程

获取面向初学者和高级开发人员的深入教程

查看教程

资源

查找开发资源并解答您的问题

查看资源