与H.264相比,为什么编码VP8 / 9这么慢?


11

最近,我想试用Webm编解码器VP8和VP9,但是当我尝试ffmpeg将H.264 MP4文件编码为其他两个编解码器之一时,我意识到编码速度(快了一个数量级)。

以3 MBit / s的速度从H.264到VP9的1080p30视频以大约6-7 fps的速度进行编码,而同一视频则以40 fps的速度对H.264进行编码。我将libvpx-vp9编解码器ffmpeg用于VP9格式。对于VP8和Theora,我也得到了相同的结果。

有人可以向我解释为什么VP9这么慢吗?我尝试了另一台机器,使用Handbrake给了我类似的结果。


Answers:


11

libvpx-vp9比编码器慢得多,libx264但是ffmpeg(0 = auto)中线程的默认设置对libvpx无效。手动设置会产生减速。例如

ffmpeg -i in.mp4 -c:v libvpx-vp9 -threads 4 out.mp4

对于一个4核的机器,编码1080-30p H.264流时,我得到一个凸起的3.8 fps10 fps


还应该提及的是,存在不同的速度预设,即-presetfor libx264-speedfor libvpx-vp9。请参阅ffmpeg -h full。这些可以发挥很大的作用,但是它们也会影响质量或压缩效率。
slhck

1
我在较旧的计算机上尝试过,但由于两台计算机均为四核,所以确实使用了4个线程。这个-speed选项对我来说并没有太大的不同
-comfreak


3

VP9是更复杂的编解码器,可提供更好的压缩效果。视频压缩/性能比往往呈指数级增长。您应该期望VP9替换(AV1)的速度更慢。


1
因此,换句话说,即使编解码器“仅”产生了相对较小的大小改进,但速度可能慢得多?结果有代表性吗?
comfreak

1
就质量而言,@ comfreak可使VP9的效率提高50%。我不会这么小。您不能只是比较结果文件的大小。
slhck '17

@slhck:您是说3MBit / s可以比H.264编码更多的原始信息,因此可以选择比H.264的源材料更低的比特率来加快处理速度吗?
comfreak

1
@comfreak使用较低的比特率不会自动提高编码过程的速度。我只是说压缩效率和速度之间需要权衡,例如,许多流媒体提供商宁愿花费CPU时间来以较低的总比特率创建更高质量的流,以节省空间和带宽。在这方面,使用更有效的编解码器(例如VP9或H.264上的HEVC)也有帮助。
slhck '17

但从本质上讲,如果速度对您来说是最重要的因素,则应坚持使用较旧的编解码器(例如H.264),压缩效率较低的预设,并且也许还应考虑使用GPU辅助编码,例如使用NVENC。
slhck '17
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.