缓冲内容

当读取器对象打开流式处理文件时,它会根据文件头中的设置确定缓冲区的大小。 可以将缓冲区视为一个桶,底部有一个以恒定速率泄漏的孔。 只要平均而言,桶的填充速率不大于其泄漏速率,存储桶就永远不会溢出。

假想桶泄漏的速率是流的比特率。 存储桶填充的速率为实际流式处理比特率。 压缩流中的数据大小因样本而异,具体取决于实现的压缩量。 因此,即使流的比特率是在配置文件中设置的,它也表示平均比特率,而不是常量。

对缓冲进程很重要的另一个流设置是缓冲区窗口。 缓冲区窗口以时间度量,并指定可以缓冲的内容量。 可以使用缓冲区窗口找到虚构存储桶的容量。 例如,如果有比特率为 32 Kbps 的流,缓冲区窗口为 3 秒,则缓冲区的大小设置为保留 3 秒的 32 Kbps 内容,或 12,000 字节 (32,000 位/秒 x 3 秒/8 位/字节) 。 编解码器限制编码样本的实际流式处理比特率之间的差异,以便在等于缓冲区窗口的一段时间内,平均比特率不大于流的比特率。

通常,为配置文件中的流设置比特率和缓冲区窗口,编写器将处理其余的。 但是,将压缩样本传递给读取器时,必须确保将目标配置文件中流的比特率和缓冲区窗口设置为压缩流中的值,从而将正确的值传输到新文件。

概念

媒体示例

输入、流和输出