是否有允许复合比特率的 AV 编解码器?

Posted

技术标签:

【中文标题】是否有允许复合比特率的 AV 编解码器?【英文标题】:Is there a AV codec that allows composite bitrate? 【发布时间】:2022-01-18 16:20:12 【问题描述】:

是否有一种编解码器允许一个数据流,其中存在最低质量的数据基线,并且可以从提高质量的源发送更多数据,反之亦然?

通常,我们有一个视频或流的多个版本。像 240p、360p、480、720p、1080p、1440p、2160p ......其中每一个都是完全不同的数据集,具有不同的编解码器设置。这会导致数据倍增的问题。所以我想知道某些编解码器是否只允许使用最高质量的版本,比如 2160p,它​​可能是 10 Mb/s 的比特率,但它会允许慢速在线消费者接收,比如来自同一数据源的 512 kb/s 和因此收到的原始源质量较低....或者我们注定要始终为每种源质量提供专用文件/流?

我猜可能不是编解码器问题,而是容器问题?我一直在使用视频流,所以我对编解码器和容器有一个大致的了解,但我不是专家。

如果仍然不清楚,可以进一步扩展 - 想象一下有一个大小为几 G 的视频文件,并且您想要流式传输它。通常,流意味着必须将源分成 5 秒长的片段。假设每个段的大小为 10 Mb。快速消费者将能够在 5 秒内接收到整个块,这将允许消费者以原始质量消费整个视频。但是假设一个缓慢的消费者只能消费前面提到的 512 kB,在这种情况下,只有半兆的片段会被发送给这个消费者,而忽略了 9.5 兆,消费者仍然可以渲染这个块收到的视频。

因此,编解码器/容器将作为具有不同数据层的分层或组合结构工作,每一层都为前一层提供更多“质量”。因此,消耗的“层”越多,渲染的质量就越高。我想这与拨号互联网时代流行的渐进式 jpeg 图像一致。

【问题讨论】:

【参考方案1】:

我发现有个东西叫SVC - Scalable Video Coding: 这正是我要问的。

好消息是 VP9 编解码器和 AV1 编解码器都支持这项技术。

【讨论】:

以上是关于是否有允许复合比特率的 AV 编解码器?的主要内容,如果未能解决你的问题,请参考以下文章

聊聊视频中的编解码器,你所不知道的h264h265vp8vp9和av1编解码库

AV1:为互联网提供开放免费的视频编解码工具

聊聊视频中的编解码器,你所不知道的h264h265vp8vp9和av1编解码库

ffmpeg库G726编解码实例

实时音频编解码之四 LPC和LSF

ffmpeg DASH 编码:vp9 编解码器的比特率始终为 200k