非常低比特率视频编解码器?

4
我想知道是否有适用于极低比特率的视频编解码器,特别是针对网络摄像头输入的情况?
假设有一个160x120的流,大约需要32kbps左右。质量可能会很差,但视频应该是“可理解的”,帧率应足以感知动作。
通过谷歌搜索,我只能找到一些抽象的信息。有没有具体的编解码器?有没有视频示例?最终,有没有可用的库?
编辑:感谢回答。我尝试使用H264对160x120的预录制剪辑进行编码,目标是32kbps,结果效果相当不错。
实际上,质量出乎意料地好,这让我想知道是否可以实时完成而不需要高CPU负载?
以会议为例,您必须在实时编码一个流的同时解码多个流。

如果您设置了5 fps和基本配置文件,您可以在比特率和CPU方面都非常低。我们能够使用某些专有编解码器将192x128 @ 5编码为4 Kbps。 - Alexey Doilnitsyn
5个回答

3

最终,我认为你最好使用高质量的现代编解码器,并将目标比特率设置得非常小,让它发挥其魔力。试试x264吧;我已经看到它在高比特率下表现出色,并且据说设计得非常良好以便降级。 x264最大的问题是对于编码和解码需要相对较高的CPU要求,但我认为它将为当前可用的编解码器提供给定比特率下最佳质量。而且它是标准化的!


你有编码和解码的数据吗?一般来说,编码比解码要慢得多(大约是解码的4到5倍)。 - Lehane
1
我进行了几次176x112 x264的测试(使用受版权保护的源文件,因此无法发布)。在32kbps下,质量很差,但视频实际上是可以观看的——它让我想起了10年前的QuickTime或RealVideo剪辑。64kbps的效果相当不错,对我的眼睛来说足够好看了。在这台2.6GHz Core 2 Duo上,我成功地实现了100-120 FPS的编码(取决于设置)。将所有设置都调到x264的“疯狂”级别时,我得到了大约100 FPS的速度——因此,现代桌面CPU将毫无问题地编码小型x264视频,尽管嵌入式处理器可能会有些困难。 - kquinn

1

要击败h264真的很难,但遗憾的是我认为对于您提到的分辨率,它只有大约64kbit。

我认为研究领域中有一些可以做得更好的东西,通常是基于Matching Pursuits的变体,但我不认为这些已经应用到实际编解码器中。首先,Matching Pursuits非常缓慢,需要很长时间进行编码;其次,还有一些涉及它的专利。


1

我认为H.264应该能够胜任这个任务。我记得以约64 kBit /秒的速度对QCIF(176X220)进行编码并获得了合理的质量,因此在32kBit / s下,较小分辨率的视频应该是可能的(但当然质量会非常低)。老实说,我总是惊讶于可以在如此低的比特率下获得可观的视频...

实现的比特率当然会在很大程度上取决于帧速率。此外,视频中的内容对比特率影响很大。如果视频中有很多动作,则会增加比特率(或者如果比特率固定,则降低质量)。

英特尔提供了一组免费的编解码器实现(H.264、H.263等),请参见 这里 这里。我之前用过它们,效果非常好。


1

记住:帧率很关键。

如果帧率降低,能否提高视频质量呢?这样32kbps也是完全可行的。

此外,GOP大小也很重要,与压缩和错误容忍度有很大关系。

大GOP=较小的大小/冗余=小流损坏致命 小GOP=大大小/每比特率质量较低=更具错误容忍度

在x264中,我建议您关闭变量AQ、Trellis和Psy-RD,并将色度量化器偏移量增加到3,并将inloop去块滤波器的Beta增加到约3,而不改变alpha。每次测试时打开PSNR并寻找最佳设置。使用MeGUI进行测试。


1

H.264在相同比特率下肯定会有最好的质量。然而,它需要最多的计算资源。因此,在某些计算机上编码或解码多个视频流可能不可行。

事先无法知道H.264(或视频总体)编码/解码所需的计算资源,因为这取决于编码参数和视频内容。因此,您应该自己进行一些测试,以查看平均PC是否能够实时编码/解码H.264,以及如果可以,可以处理多少个流。这并不像看起来那么困难。使用mencoder或x264对长视频进行H.264编码,并使用所需的参数查看编码帧速率。现在,在第一个实例完成之前,启动另一个mencoder实例并查看帧速率等。

如果最终发现H.264不适合您的需求,请尝试h.263。它是一种较旧的协议,无法达到H.264的压缩率,但是它专门设计用于视频会议,因此在您需要的情况下具有良好的质量,并且由于它相当老,因此对资源要求不高。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接