配置流
配置文件中唯一需要至少一个流。 其他选项提供对更高级功能的访问,但只要至少一个流,就可以创建 ASF 文件。 在创建复杂配置文件之前,必须了解如何配置流。
出于配置文件的目的,流可以分为两种类型:使用 Windows Media 编解码器压缩的流和不使用任何编解码器处理的任意流。 音频流和视频流是使用 Windows Media 编解码器的类型。 当然,流可以包含使用第三方编解码器压缩的音频或视频,但配置此类流的过程是一种特殊情况。 有关详细信息,请参阅 使用第三方编解码器创建 ASF 文件。
以下列表总结了配置流的过程。
- 获取流的流配置对象。
- 如果使用 Windows Media 编解码器之一创建流,则必须使用 IWMCodecInfo3 的方法以编解码器格式获取流配置对象。
- 如果流是任意类型,请使用 IWMProfile::CreateNewStream 获取空流配置对象。
- 配置流以满足需求。
- 应为所有类型的流分配名称、连接名称和流号。
- 使用 Windows Media 编解码器的流只能以预定义的方式从编解码器格式更改。 对于音频流,应仅更改两次传递 VBR (VBR) 设置的可变比特率。 视频流需要配置所需的帧属性。
- 任意流按类型具有不同的配置要求。 所有这些都需要比特率和缓冲区窗口。
- 通过调用 IWMProfile::AddStream 将流添加到配置文件。
所有流都是使用流配置对象定义的。 流配置对象的main接口是 IWMStreamConfig,它提供用于设置流的基本设置的方法,例如流编号、比特率等。 IWMStreamConfig 由较新的接口 IWMStreamConfig2 和 IWMStreamConfig3 继承。 与所有编号的接口修订一样,应始终使用 QueryInterface 方法检索最新版本。
流中的大多数设置都是通过 IWMMediaProps 访问的。 这些设置封装在 WM_MEDIA_TYPE 结构中。 对于音频和视频, WM_MEDIA_TYPE 结构指向另一个结构,其中包含特定于媒体类型的进一步信息。 此辅助结构通常是 AUDIO 的 WAVEFORMATEX 和用于视频的 WMVIDEOINFOHEADER 。 此外,视频流具有三级结构 BITMAPINFOHEADER,用于描述单个视频帧的特征。 BITMAPINFOHEADER 是一种通用结构,可在平台 SDK 的图形设备接口 (GDI) 部分找到。
以下部分介绍如何配置流。
部分 | 说明 |
---|---|
所有流通用的配置 | 介绍所有类型的流通用的基本流配置。 |
从编解码器获取流配置信息 | 介绍如何从编解码器获取流配置信息,以确保使用 Windows Media 音频和视频编解码器正确配置流。 |
配置音频流 | 介绍如何配置音频流。 |
配置视频流 | 介绍如何配置视频流。 |
配置视频流以寻求性能 | 介绍如何配置高效搜寻非常重要的视频流。 |
配置屏幕捕获流 | 介绍如何为屏幕捕获配置视频流。 |
配置图像流 | 介绍如何配置图像流。 |
使用未压缩的音频和视频流 | 介绍如何设置未压缩的音频或视频流。 |
配置任意流类型 | 介绍如何配置流以使用预定义的任意流类型。 |
配置 VBR 流 | 介绍如何将流配置为 (VBR) 使用可变比特率编码。 |
配置数据单元扩展 | 介绍如何配置流,以便在写入文件时附加数据单元扩展。 |
重用流配置 | 介绍使用现有配置文件中的流配置对象来生成新配置文件的方式。 |
相关主题