我目前在一个网络摄像头流媒体服务器项目中,需要根据客户端的设置(屏幕大小,处理能力...)动态调整流码率的功能。或者网络带宽。编码器是live555,因为它是免费和开源的,而编解码器是MPEG-4part 2。
如何使用ffmpeg编码MBR MPEG-4视频来实现这一点?
发布于 2011-12-05 21:38:21
您所描述的多码率视频称为“可伸缩视频编解码器”。要了解基本情况,请参阅此wiki链接。
基本上,在可伸缩视频编解码器中,基本层流本身是完全可解码的;然而,附加信息以(一个或多个)增强流的形式表示。有几种技术可以做到这一点,包括更低/更高的分辨率,帧速率和量化变化。本文分别对MEPG4和H.264的可伸缩视频编码进行了详细的说明。这是另一个解释你打算做什么的good paper。
不幸的是,这是一个广泛的研究主题,到目前为止还没有开源(ffmpeg和xvid)不支持这种多层编码。我猜即使是商业编码器也不支持这一点。这是非常复杂的。也许你可以看看H.264的Reference encoder是否支持它。
另一种(但CPU昂贵的)方式可以在传输分组的同时实时进行代码转换。在这种情况下,您应该从相当好的质量开始。如果您使用FFMPEG作为API,这应该不是问题。通常情况下,多分辨率可能仍然是混乱的,但您可以不断更改目标编码率。
https://stackoverflow.com/questions/8309241
复制相似问题