假设有一个160x120的流,大约需要32kbps左右。质量可能会很差,但视频应该是“可理解的”,帧率应足以感知动作。
通过谷歌搜索,我只能找到一些抽象的信息。有没有具体的编解码器?有没有视频示例?最终,有没有可用的库?
编辑:感谢回答。我尝试使用H264对160x120的预录制剪辑进行编码,目标是32kbps,结果效果相当不错。
实际上,质量出乎意料地好,这让我想知道是否可以实时完成而不需要高CPU负载?
以会议为例,您必须在实时编码一个流的同时解码多个流。
最终,我认为你最好使用高质量的现代编解码器,并将目标比特率设置得非常小,让它发挥其魔力。试试x264吧;我已经看到它在高比特率下表现出色,并且据说设计得非常良好以便降级。 x264最大的问题是对于编码和解码需要相对较高的CPU要求,但我认为它将为当前可用的编解码器提供给定比特率下最佳质量。而且它是标准化的!
要击败h264真的很难,但遗憾的是我认为对于您提到的分辨率,它只有大约64kbit。
我认为研究领域中有一些可以做得更好的东西,通常是基于Matching Pursuits的变体,但我不认为这些已经应用到实际编解码器中。首先,Matching Pursuits非常缓慢,需要很长时间进行编码;其次,还有一些涉及它的专利。
记住:帧率很关键。
如果帧率降低,能否提高视频质量呢?这样32kbps也是完全可行的。
此外,GOP大小也很重要,与压缩和错误容忍度有很大关系。
大GOP=较小的大小/冗余=小流损坏致命 小GOP=大大小/每比特率质量较低=更具错误容忍度
在x264中,我建议您关闭变量AQ、Trellis和Psy-RD,并将色度量化器偏移量增加到3,并将inloop去块滤波器的Beta增加到约3,而不改变alpha。每次测试时打开PSNR并寻找最佳设置。使用MeGUI进行测试。
H.264在相同比特率下肯定会有最好的质量。然而,它需要最多的计算资源。因此,在某些计算机上编码或解码多个视频流可能不可行。
事先无法知道H.264(或视频总体)编码/解码所需的计算资源,因为这取决于编码参数和视频内容。因此,您应该自己进行一些测试,以查看平均PC是否能够实时编码/解码H.264,以及如果可以,可以处理多少个流。这并不像看起来那么困难。使用mencoder或x264对长视频进行H.264编码,并使用所需的参数查看编码帧速率。现在,在第一个实例完成之前,启动另一个mencoder实例并查看帧速率等。
如果最终发现H.264不适合您的需求,请尝试h.263。它是一种较旧的协议,无法达到H.264的压缩率,但是它专门设计用于视频会议,因此在您需要的情况下具有良好的质量,并且由于它相当老,因此对资源要求不高。