0

我目前在一个网络摄像头流媒体服务器项目中,该项目需要根据客户端的设置(屏幕尺寸、处理能力...)或网络带宽动态调整流比特率的功能。编码器是 ffmpeg,因为它是免费和开源的,编解码器是 MPEG-4 第 2 部分。我们使用 live555 作为服务器部分。

如何使用 ffmpeg 对 MBR MPEG-4 视频进行编码以实现此目的?

4

1 回答 1

0

您描述的多比特率视频称为“可扩展视频编解码器”。有关基本理解,请参阅此wiki链接。

基本上,在可扩展视频编解码器中,基础层流本身具有完全可解码性;然而,附加信息以(一个或多个)增强流的形式表示。有几种技术可以做到这一点,包括更低/更高的分辨率、帧率和量化的变化。以下论文分别详细解释了MEPG4H.264的可扩展视频编码。这是另一篇很好的论文,它解释了你打算做什么。

不幸的是,这是一个广泛的研究主题,迄今为止没有任何开源(ffmpeg 和 xvid)不支持这种多层编码。我想即使是商业编码器也不支持这一点。这是非常复杂的。可能您可以查看H.264 的参考编码器 是否支持它。

另一种方式(但 CPU 昂贵)可以在传输数据包时实时转码。在这种情况下,您应该从相当好的质量开始。如果您使用 FFMPEG 作为 API,这应该不是问题。通常,多分辨率可能仍然很混乱,但您可以不断更改目标编码率。

于 2011-12-05T13:38:21.053 回答