我正在尝试将网络摄像头中的视频编码为VP8流。使用Chrome从我的网络摄像头发送WebRTC流看起来非常不错,并且不会占用大量CPU资源。当我尝试使用FFMPEG将网络摄像头流转码为VP8(webm)时,速度非常非常慢。

在OS X上,我使用以下FFMPEG选项生成VP8 webm文件。来源是720p Facetime网络摄像头。它消耗了我的CPU使用率(2011年末i7 MBP内核),质量也不是很好:

ffmpeg -f avfoundation -i 'default' -y -qmin 11 -qmax 45 -b:v 500k -cpu-used 0 -deadline realtime test.webm

WebRTC使用哪种协议(protocol)?Chrome怎么这么快?我给人的印象是VP8无法在硬件中完成。使用现代的Intel CPU,您可以使用QuickSync,但是我想那只是H.264,FFMPEG不支持。

最佳答案

这实际上是正常的。 目前WebM Project仍然相对较小,唯一的主要采用者是Google的YouTube流媒体服务。

WebM编码(使用VP8编解码器)非常慢,但是以某种方式,较新的VP9编解码器在消费类计算机上更加困难。对于Google的大型服务器来说,这似乎不是一个太大的问题,但是WebM视频(其高效压缩)的主要好处是它对普通用户的不利影响。

从WebM Project网站:

编码WebM视频似乎真的很慢。你在做什么呢?

如今,以“最佳质量”模式编码VP8是最慢的配置。 >使用速度参数设置为0到5的“高质量”模式>将提供一定范围的速度。我们相信,我们可以大幅提高VP8的速度,尤其是在您的帮助下。在2010年10月发布的“Aylesbury”发行版中,我们将VP8的整体解码器性能提高了约28%,并着眼于下一个发行版的编码器速度改进。

希望这可以帮助!

09-15 22:48