【发布时间】:2014-12-18 19:49:15
【问题描述】:
我正在尝试将网络摄像头中的视频编码为 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 使用哪种协议,Chrome 怎么能这么快?我的印象是 VP8 不能在硬件中完成。使用现代 Intel CPU,您可以使用 QuickSync,但我猜这只是 H.264,FFMPEG 不支持。
【问题讨论】:
-
Chrome 可能正在使用硬件加速编码。另外,您的 VP8 编码设置和帧大小/速率是多少?您的编码设置和视频质量可能会影响速度(取决于您的计算机硬件)。
-
我添加了我的 FFMPEG 字符串。我不认为 VP8 可以在硬件中完成。
-
Chrome 会根据您的 chrome 版本、操作系统和底层硬件进行硬件加速编码/解码。
-
@RamondeKlein 现代英特尔硬件确实支持 QuickSync 中的 VP8。
-
确实如此,但这绝对不是桑迪桥的事情。更不用说在 OSX 上,其制造商的无限智慧甚至没有 recognize VP 编解码器。 Chrome 应该有 been 只是 using 正常的 libvpx,所以我的教育猜测只是 OP 没有正确的 parameters。
标签: google-chrome webrtc webm vp8