我正在尝试将网络摄像头中的视频编码为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%,并着眼于下一个发行版的编码器速度改进。
希望这可以帮助!