归根结底,我认为您可能会通过运行具有非常小的目标比特率的高质量现代编解码器来获得最佳服务,并让它发挥其魔力。 尝试x264; 我已经看到它在高比特率下的卓越性能,而且据说它的设计可以很好地降低性能。 x264 的最大问题是它对编码和解码的 CPU 要求相对较高,但我认为它将在给定比特率下为当前可用的编解码器提供最佳质量。 而且是标准化的!
At the end of the day, I think you'll probably be best served by running a high-quality modern codec with a very small target bitrate, and let it work its magic. Give x264 a try; I've seen exceptional performance from it at high bitrates, and it's supposedly designed to degrade very well. The biggest problem with x264 is that it'll have relatively high CPU requirements for encoding and decoding, but I think it will provide the best quality at a given bitrate for currently available codecs. And it's standardized!
It's really hard to beat h264, but sadly I think it's about 64kbit for the resolution you mention.
I think there's some stuff in the research world that can do better, typically variations of Matching Pursuits, but I don't think those have made it to real world codecs. This is because firstly, Matching Pursuits is very slow to encode, and second there are some patents covering it.
I think H.264 would be capable of doing that. I seem to remember encoding QCIF(176X220) at around 64 kBit/second and it was reasonable quality, so a smaller resolution at 32kBit/s should be possible (but of course will be very low quality). To be honest I always find it amazing that you can get a watchable video at bitrates so low....
The bitrate achieved will of course depend a lot on the framerate. Also, the content in the video has a large impact on the birate. If there is a lot of movement in the video it will increase bitrate (or decrease quality if the bitrate is fixed).
Intel have a set of free implementations of a number of codecs (H.264, H.263 and others), look here or here. I used them before and they are very good.
what about more quality for less framerate? that way 32kbps is more than possible.
also, GOP size is important, and has a lot to do with compression AND error resilience.
large gop = smaller size/redundancy = small stream corruption becomes fatal small gop = big size/less quality per bitrate = more error-resilient
in x264, I recommend you to turn off variable AQ, Trellis and Psy-RD, and to increase the chroma quantizer offset to say 3, and to increase Beta of inloop deblocker, to about 3, without changing alpha. turn on PSNR everytime you test and look for the best settings. and use MeGUI for testing.
H.264 definitely will have the best quality for the same bitrate. However, it will need the most computational resources. So, encoding or decoding of multiple videos streams my not be feasible in some computers.
There is no way to know a priori the computational resources that H.264 (or video in general) encoding / decoding will need since this depends from the encoding parameters and from the video content. So, you should do some tests yourself in order to see if an average pc can encode/decode H.264 in real time, and if yes how many streams. This is not as hard as it seems. Use mencoder or x264 to H.264 encode with the desired parameters a long video. Take a look at the encoding frame rate. Now, before the first one finishes, start another instance of mencoder and take a look at the frame rate, etc.
If you finally find out that H.264 is not suitable for your needs, try h.263. It is an older protocol and is not able to achieve the compression rates of H.264, however it is specifically designed for video conferences, so it will have good quality in the situation you need it and also, since it is rather old, it is not very demanding on resources.
发布评论
评论(5)
归根结底,我认为您可能会通过运行具有非常小的目标比特率的高质量现代编解码器来获得最佳服务,并让它发挥其魔力。 尝试x264; 我已经看到它在高比特率下的卓越性能,而且据说它的设计可以很好地降低性能。 x264 的最大问题是它对编码和解码的 CPU 要求相对较高,但我认为它将在给定比特率下为当前可用的编解码器提供最佳质量。 而且是标准化的!
At the end of the day, I think you'll probably be best served by running a high-quality modern codec with a very small target bitrate, and let it work its magic. Give x264 a try; I've seen exceptional performance from it at high bitrates, and it's supposedly designed to degrade very well. The biggest problem with x264 is that it'll have relatively high CPU requirements for encoding and decoding, but I think it will provide the best quality at a given bitrate for currently available codecs. And it's standardized!
确实很难打败 h264,但遗憾的是我认为你提到的分辨率大约是 64kbit。
我认为研究领域有一些东西可以做得更好,通常是匹配追踪的变体,但我认为这些还没有进入现实世界的编解码器。 这是因为,首先,Matching Pursuits 的编码非常很慢,其次有一些专利涵盖了它。
It's really hard to beat h264, but sadly I think it's about 64kbit for the resolution you mention.
I think there's some stuff in the research world that can do better, typically variations of Matching Pursuits, but I don't think those have made it to real world codecs. This is because firstly, Matching Pursuits is very slow to encode, and second there are some patents covering it.
我认为 H.264 能够做到这一点。 我似乎记得以大约 64 kBit/s 的速度对 QCIF(176X220) 进行编码,并且质量相当合理,因此 32kBit/s 的较小分辨率应该是可能的(但当然质量会非常低)。 说实话,我总是觉得很神奇,你能以如此低的比特率获得可观看的视频……
所实现的比特率当然在很大程度上取决于帧率。 此外,视频中的内容对比特率也有很大影响。 如果视频中有大量运动,则会增加比特率(如果比特率固定,则会降低质量)。
Intel 有一组多种编解码器(H.264、H.263 等)的免费实现,请查看 此处或此处。 我以前用过它们,它们非常好。
I think H.264 would be capable of doing that. I seem to remember encoding QCIF(176X220) at around 64 kBit/second and it was reasonable quality, so a smaller resolution at 32kBit/s should be possible (but of course will be very low quality). To be honest I always find it amazing that you can get a watchable video at bitrates so low....
The bitrate achieved will of course depend a lot on the framerate. Also, the content in the video has a large impact on the birate. If there is a lot of movement in the video it will increase bitrate (or decrease quality if the bitrate is fixed).
Intel have a set of free implementations of a number of codecs (H.264, H.263 and others), look here or here. I used them before and they are very good.
请记住:帧速率至关重要。
以更低的帧率获得更高的质量怎么样? 这样 32kbps 就绰绰有余了。
此外,GOP 大小也很重要,并且与压缩和容错能力有很大关系。
大 gop = 较小的大小/冗余 = 小流损坏变得致命
小 gop = 大尺寸/每比特率质量较低 = x264 中的容错能力更强
,我建议您关闭变量 AQ、Trellis 和 Psy-RD,并将色度量化器偏移量增加到 3,并增加内环的 Beta去块效应,到 3 左右,不改变 alpha。 每次测试时打开 PSNR 并寻找最佳设置。 并使用MeGUI进行测试。
remember: framerate is crucial.
what about more quality for less framerate? that way 32kbps is more than possible.
also, GOP size is important, and has a lot to do with compression AND error resilience.
large gop = smaller size/redundancy = small stream corruption becomes fatal
small gop = big size/less quality per bitrate = more error-resilient
in x264, I recommend you to turn off variable AQ, Trellis and Psy-RD, and to increase the chroma quantizer offset to say 3, and to increase Beta of inloop deblocker, to about 3, without changing alpha. turn on PSNR everytime you test and look for the best settings. and use MeGUI for testing.
在相同的比特率下,H.264 肯定会具有最好的质量。 然而,它将需要最多的计算资源。 因此,多个视频流的编码或解码在某些计算机上可能不可行。
无法先验地知道 H.264(或一般视频)编码/解码所需的计算资源,因为这取决于编码参数和视频内容。 因此,您应该自己做一些测试,看看普通电脑是否可以实时编码/解码 H.264,如果可以,可以实时编码/解码多少个流。 这并不像看起来那么难。 使用 mencoder 或 x264 到 H.264 使用所需参数对长视频进行编码。 看一下编码帧率。 现在,在第一个完成之前,启动另一个 mencoder 实例并查看帧速率等。
如果您最终发现 H.264 不适合您的需求,请尝试 h.263。 它是一种较旧的协议,无法达到 H.264 的压缩率,但它是专为视频会议而设计的,因此在您需要的情况下它会具有良好的质量,而且由于它相当旧,因此它对资源要求不是很高。
H.264 definitely will have the best quality for the same bitrate. However, it will need the most computational resources. So, encoding or decoding of multiple videos streams my not be feasible in some computers.
There is no way to know a priori the computational resources that H.264 (or video in general) encoding / decoding will need since this depends from the encoding parameters and from the video content. So, you should do some tests yourself in order to see if an average pc can encode/decode H.264 in real time, and if yes how many streams. This is not as hard as it seems. Use mencoder or x264 to H.264 encode with the desired parameters a long video. Take a look at the encoding frame rate. Now, before the first one finishes, start another instance of mencoder and take a look at the frame rate, etc.
If you finally find out that H.264 is not suitable for your needs, try h.263. It is an older protocol and is not able to achieve the compression rates of H.264, however it is specifically designed for video conferences, so it will have good quality in the situation you need it and also, since it is rather old, it is not very demanding on resources.