2011-11-29 61 views
0

我目前在网络摄像头流媒体服务器项目中,需要根据客户端的设置(屏幕大小,处理能力...)或网络带宽动态调整流的比特率。编码器是ffmpeg,因为它是免费且开源的,编解码器是MPEG-4的第2部分。我们使用live555作为服务器部分。我可以使用ffmpeg创建多比特率(MBR)MPEG-4视频吗?

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

+0

你的意思是可变比特率(VBR)? – sashoalm

回答

0

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

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

不幸的是,这是一个广泛的研究课题,并直到日期没有开放源代码(ffmpeg的和Xvid)不支持这样的多层编码。我想即使商业编码器也不支持这一点。这非常复杂。可能你可以看看H.264的Reference encoder是否支持它。

替代(但CPU昂贵)的方式可在实时而发送所述分组进行代码转换。在这种情况下,您应该从合理的高质量开始。如果您使用FFMPEG作为API,它不应该是一个问题。通常多个分辨率可能仍然很混乱,但您可以不断更改目标编码速率。