【问题标题】:Very low bitrate video codec? [closed]比特率很低的视频编解码器? [关闭]
【发布时间】:2009-06-06 22:12:45
【问题描述】:

我想知道是否有适合极低比特率的视频编解码器,尤其是网络摄像头输入?

抛出一些数字:假设一个 160x120 的流将产生大约 32kbps 左右。

质量可能会很差。但是,视频应该是“可理解的”,并且帧速率应该足以进行运动感知。

谷歌搜索,我只能找到摘要。有具体的编解码器吗?有视频示例吗?最终,任何可用的库?

编辑:感谢您的回答。我尝试使用针对 32kbps 的 H264 对 160x120 预录制剪辑进行编码,我必须承认结果非常好。

质量实际上非常好,这让我想知道这是否可以实时完成,并且不需要高 CPU 负载?

以会议为例,您必须实时编码一个流,同时解码多个流。

【问题讨论】:

  • 如果您设置 5 fps 和基线配置文件,您的比特率和 cpu 都可能非常低。我们能够使用一些专有的编解码器将 192x128@5 编码为 4 Kbps。

标签: video codec bitrate


【解决方案1】:

归根结底,我认为最好的方法是运行具有非常小的目标比特率的高质量现代编解码器,并让它发挥它的魔力。试试x264;我已经看到它在高比特率下的出色性能,并且据说它的设计可以很好地降级。 x264 最大的问题是它对编码和解码的 CPU 要求相对较高,但我认为它会在给定比特率下为当前可用的编解码器提供最佳质量。而且是标准化的!

【讨论】:

  • 你们有数字编码和解码吗?一般来说,编码比解码需要更长的时间(大约是 4 或 5 倍)。
  • 我用 176x112 x264 进行了几次测试(以及受版权保护的来源,所以我不能发布它们)。 32kbps 的质量很糟糕,但视频实际上是可以观看的——它让我想起了 10 年前的 QuickTime 或 RealVideo 剪辑。 64kbps 实际上相当不错,在我看来已经足够好。在这个 2.6GHz Core 2 Duo 上,我管理 100-120 FPS 的编码(取决于设置)。将 x264 上的所有设置都调到“疯狂”,我得到了大约 100 FPS——因此现代台式机 CPU 对小型 x264 视频进行编码不会有问题,尽管嵌入式处理器可能会。
【解决方案2】:

击败 h264 真的很难,但遗憾的是我认为你提到的分辨率大约是 64kbit。

我认为研究领域中有些东西可以做得更好,通常是匹配追踪的变体,但我不认为这些已经应用于现实世界的编解码器。这是因为首先,Matching Pursuits 的编码非常很慢,其次有一些专利涵盖了它。

【讨论】:

    【解决方案3】:

    我认为 H.264 能够做到这一点。我似乎记得以大约 64 kBit/s 的速度编码 QCIF(176X220),这是合理的质量,因此 32kBit/s 的较小分辨率应该是可能的(但当然质量会非常低)。老实说,我总是觉得很神奇,你能以如此低的比特率获得可观看的视频....

    实现的比特率当然很大程度上取决于帧率。此外,视频中的内容对比特率有很大影响。如果视频中有大量移动,则会提高比特率(如果比特率固定,则会降低质量)。

    英特尔有一组免费实现的许多编解码器(H.264、H.263 和其他),请查看 herehere。我以前用过,效果很好。

    【讨论】:

      【解决方案4】:

      记住:帧率至关重要。

      如何以更低的帧速率获得更高的质量?那样 32kbps 是不可能的。

      此外,GOP 大小也很重要,并且与压缩和错误恢复能力有很大关系。

      大 gop = 更小尺寸/冗余 = 小流损坏变得致命 小 gop = 大尺寸/每比特率质量低 = 更容错

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

      【讨论】:

        【解决方案5】:

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

        没有办法先验地知道 H.264(或一般视频)编码/解码所需的计算资源,因为这取决于编码参数和视频内容。所以,你应该自己做一些测试,看看普通电脑是否可以实时编码/解码 H.264,如果可以,有多少流。这并不像看起来那么难。使用 mencoder 或 x264 将 H.264 编码为带有所需参数的长视频。看一下编码帧率。现在,在第一个完成之前,启动另一个 mencoder 实例并查看帧速率等。

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

        【讨论】:

          猜你喜欢
          • 2021-04-09
          • 1970-01-01
          • 2013-04-12
          • 1970-01-01
          • 2013-10-27
          • 2011-12-23
          • 1970-01-01
          • 1970-01-01
          • 2011-04-08
          相关资源
          最近更新 更多