作者andrew43 (讨厌有好心推文後删文者)
看板Browsers
标题[-Fx-] 比较 youtube HTML5及Flash的 CPU 使用率
时间Sat Mar 7 07:37:35 2015
== 摘要 ==
Firefox @ OS X 10.10 看 Youtube 影片时,
到底要用 Flash 还是 HTML5(vp9)?
在考虑不同影片、不同播放模式及不同解析度之下,
我比较了 Flash 和 HTML5 的 CPU 使用量。
结果指出,播放尺寸越大时,Flash 播放器的 CPU 使用明显变小。
另外,HTML5 播放的影片之解析度越高,CPU 使用越大,但 Flash 变化不大。
懒得看下文的朋友请直接看这张图:
http://i.imgur.com/qfbHr9Z.png
和我相同使用环境的朋友参考看看。
== 前言 ==
我一直有一个疑问:
在我的电脑上看 youtube 影片时,
我应该用哪种播放器?是 HTML5(vp9)还是 Flash(H.264)?
我只使用 Firefox,感觉是 HTML5 依然比 Flash 迟顿。
为了验证我的感觉是正确的,我比较了 CPU 使用率在二种播放器的差别。
由於不同播放尺寸及不同影片解析度可能会是二个重要的混淆因子,
所以在分析中也纳入此二项因素。
== 方法 ==
电脑:
MacBook Pro (15-inch, Mid 2010);
2.4 GHz Intel Core i5;
8 GB ram;
1680×1050 screen;
已开启自动转换显示晶片 NVIDIA GeForce GT 330M 256 MB
作业系统:
OS X 10.10.2 (14C109)
浏览器:
Firefox 36.0.1 全新 profile 并有以下额外设定(否则不能看 vp9):
media.mediasource.youtubeonly;true
media.mediasource.webm.enabled;true
media.mediasource.mp4.enabled;true
media.mediasource.enabled;true
Flash:16.0.0.305
选用三个影片(皆有 480p、720p、1080p 的 Flash 及 vp9):
https://www.youtube.com/watch?v=yeaztQK9If0
https://www.youtube.com/watch?v=M4jqk2LFWvA
https://www.youtube.com/watch?v=qw6MP5nXUJc
CPU 使用率计算方法:
开启单一影片网址後,设定好以下三个因子:
播放模式(预设、剧院及全萤幕)、
解析度(480p、720p 及 1080p)、
播放器(开分页
https://www.youtube.com/html5 设定)。
在暂停播放的情况下把指标拉到影片开始时间。
同时,在 terminal 中下达
sleep 5 ;\
top -a -o cpu -l 60 -ncols 3 > test.log ;\
cat test.log | grep CPU\ usage ; \
tput bel
上述指令的作用是在 5 秒後开始记录 CPU 使用量到 test.log 中,
每秒记录一次并持续 60 秒。
记录的数值不是当下测量值,而是累积之平均值。
在按下 enter 後,快速地切换到 youtube 网页并按下播放。
在 1 分钟後,会发出 beep 一声,并显示测量结果。
因为是累积平均测量,所以我会记录最後一笔结果,
得到这 1 分钟的 CPU 平均使用量。
在同一个解析度、同一个播放模式及同一个播放器的情况下,
每一个影片测进行上述测量一次。
换句话说,相同网址之影片皆测量了 9 次
(3 种播放模式 × 3 种影片解析度)。
在测量期间,尽可能排除开启其它软体。
测量的顺序并不一定,但并没有完全随机。
== 结果 ==
请直接看这张图:
http://i.imgur.com/qfbHr9Z.png
总体比较之下,Flash player 比 HTML5 player 使用更少的 CPU。
当播放尺寸增大,或是影片的解析度增大时,
这种趋势越来越明显。
有趣的是,Flash player 在全萤幕模式所使用的 CPU 是最少的。
这应该是 Flash player 利用显示晶片解码的关系。
我也做了一个 general mixed model,但结果就不细说了。
大概的结论如下:
1. 播放器与播放尺寸存在交互作用。
尺寸越大时,Flash 播放器的 CPU 使用明显变小。
HTML5 也有相似现象,但并不明显。
2. 播放器与影片解析度存在交互作用。
HTML5 播放的影片之解析度越高,使用越多的 CPU,但 Flash 变化不大。
3. 即使存在上述二个交互作用,但能解释最多变异的因子就是
「播放器」这个主效应,也就是 Flash 还是 HTML5。
== 结论 ==
以 CPU 使用率低为目标来看,
我应该继续用 Flash 看 Youtube 影片,没有疑问。
--
http://apansharing.blogspot.com/
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 125.230.82.213
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Browsers/M.1425685059.A.708.html
※ 编辑: andrew43 (125.230.82.213), 03/07/2015 07:39:46
※ andrew43:转录至看板 MAC 03/07 07:40
1F:推 kaoh08: 真详细!可以帮测其他家浏览器吗? 03/07 10:01
2F:→ andrew43: 我本来想多测 google chrome,发现flash已经被封印了。 03/07 10:05
3F:推 hohiyan: 推 box plot.全萤幕时消耗较少是因为不用处理其它软体? 03/07 10:09
4F:→ andrew43: 应该不是,因为没观察到其他process不使用CPU的现象,且 03/07 10:25
5F:→ andrew43: 我实验时已尽可能减少启动的应用喔程式了。 03/07 10:25
6F:推 kira925: 可以测Opera...Opera还可以切换XD 03/07 10:30
7F:→ raiechun: flash player 播放 h.264 视讯时能使用硬体解码,而 HTM 03/07 10:35
8F:→ raiechun: L5 播放 VP9 视讯时没有使用,支援 VP9 硬体解码的显示 03/07 10:36
9F:→ raiechun: 卡目前还没有,所以目前 HTML5 消耗较多运算是正常的, 03/07 10:38
10F:→ andrew43: 谢谢。我也是这麽猜,但没想到这麽明显。 03/07 10:39
11F:→ andrew43: Opera,我就让它继续当孤儿吧。 03/07 10:39
12F:推 albertkingdo: 希望有不同作业系统比较 03/07 10:42
13F:→ raiechun: 第二,h.264 和 VP9 两者的解码速度是不同的,这样比较 03/07 10:44
14F:→ raiechun: 没有参考价值 03/07 10:45
15F:→ andrew43: 当然有。我的目的是youtube用哪个player占用CPU少。 03/07 10:46
16F:→ andrew43: vp9比较复杂,但不是我关心的,看youtube顺一点才是。 03/07 10:48
17F:→ andrew43: windows下,我猜应该有不少人测过了。我也不用windows。 03/07 10:49
18F:→ SicInfit: 可是瑞凡,连 Opera 都支援 H.264;硬体加速摆着不用拿 03/07 10:50
19F:→ SicInfit: Firefox+VP9 来比,当然不见得比 Flash 吃香。 03/07 10:50
20F:→ andrew43: Firefox @ OS X 也支持 H.264,但youtube优先给vp9。 03/07 10:52
21F:→ andrew43: 但我没去config里调,说不定有只给html5(h.264)的方法。 03/07 10:53
22F:→ SicInfit: Firefox 在 OS X 上的 energy inefficiency 跟 Chrome 03/07 11:06
23F:→ SicInfit: 有得比,有空的话拿 Safari 再测一次,我想也许会有不 03/07 11:06
24F:→ SicInfit: 同的结果 03/07 11:06
25F:→ andrew43: 谢谢。我也想多比个energy。还不知道怎麽爬energy资料。 03/07 11:09
26F:推 killua12703: 我用Fx Beta,37.0也回不去flash 03/07 11:49
27F:推 kizajan: 拿h.264跟vp9是要比什麽... 03/07 13:01
28F:推 kizajan: 同样html5 vp9的cpu使用率平均高过h.264至少2~3倍 03/07 13:21
29F:→ kizajan: 用h.264同样可以看的东西 你偏偏要用vp9去软解... 03/07 13:21
30F:→ kizajan: 我的测试环境是38.0a2 和36.0.1应是差不多的 03/07 13:23
31F:→ andrew43: 我不知如何让YouTube优先给HTML5(h.264)。请问怎麽做? 03/07 13:35
32F:推 kizajan: 你media.mediasource.webm.enabled设true 它当然用vp9啊 03/07 13:40
33F:推 kizajan: chrome使用者找方法要关掉vp9...而你却反其道而行... 03/07 13:42
34F:推 kizajan: 推文内说没参考价值是对的 ( ′-`)y-~ 03/07 13:56
35F:推 kizajan: 你用不同的播放器各自用不同的codec 却要比较两播放器间 03/07 13:58
36F:→ kizajan: 的优劣... 03/07 13:58
37F:→ andrew43: 谢谢,下次试试。 03/07 14:24
38F:推 mayuyu: @andrew43: 把media.mediasource.webm.enabled 03/07 14:30
39F:→ mayuyu: 改为false这样试试看 Fx36.0.1 + OS X 10.10.2 03/07 14:30
40F:→ mayuyu: 可以播放DASH MP4 03/07 14:30
41F:推 mayuyu: 另外HTML5解VP9现阶段会消耗比Flash更多的记忆体和CPU 03/07 14:33
42F:→ mayuyu: 除非有特别的需求否则现阶段用Flash播放Youtube比较好 03/07 14:33
43F:→ andrew43: 但我也好奇YouTube里vp9和h264的差异。这是我一开始的 03/07 14:33
44F:→ andrew43: 目的。没测也不知差多少。 03/07 14:33
45F:→ andrew43: 谢谢楼上,下次试试。 03/07 14:35
46F:推 mayuyu: 主要是现在浏览器的VP9解码写得很差 03/07 14:43
47F:→ mayuyu: 用chrome播放4K的VP9影片 CPU使用率大约是FFVP9的2.5倍 03/07 14:43
48F:→ mayuyu: FFVP9以前只有64bit的版本有SIMD最佳化 所以32bit的解码器 03/07 14:43
49F:→ mayuyu: 效率一样很差 但是去年底FFVP9将32bit也SIMD化 03/07 14:44
50F:→ mayuyu: 同时指令集从AVX2转为SSE3/SSE2 所以即使在旧的CPU上 03/07 14:44
51F:→ mayuyu: 也能得到加速 但是浏览器google自己的这一块完全没有改善 03/07 14:44
52F:→ mayuyu: 所以播放VP9才会消耗比Flash播放H.264更多的资源 03/07 14:44
53F:→ mayuyu: 如果VP9最佳化 其实播放效率会比H.264更高 03/07 14:45
54F:→ mayuyu: 也就是其实VP9解码速度本来应该比H.264更快 是编码速度慢 03/07 14:45
55F:→ mayuyu: 但是解码少了传统的B-Frame其实速度应该更快 03/07 14:45
56F:→ mayuyu: 只是因为浏览器的解码写得不好 所以才会变得比H.264慢 03/07 14:46
57F:→ andrew43: 请问FF是指firefox还是ffmpeg?或是使用同解码器? 03/07 14:49
58F:推 mayuyu: FFVP9指的是ffmpeg Fireofx的VP9解码是自己写的 03/07 14:51
59F:→ mayuyu: 因为还没全部完成 所以我没测试解码效率如何 03/07 14:52
60F:→ mayuyu: 我测试的是chrome和FFVP9(ffmpeg)的比较 03/07 14:52
61F:推 mayuyu: 还有因为压缩设定的关系 目前youtube上VP9的压缩画质 03/07 14:55
62F:→ mayuyu: 并没有比H.264版本好 本来应该画质比较是 03/07 14:55
63F:→ mayuyu: H.265 > VP9 > H.264 > VP8 但是在youtube上并不会有明显 03/07 14:55
64F:→ andrew43: 我的经验是编vp9是完全不能忍受的慢。XD 03/07 15:00
65F:推 mayuyu: 关掉一些压缩选项会快一点 但是画质就会变得和H.264 03/07 15:06
66F:→ mayuyu: 一样甚至更差 这点H.265也是一样 等等看将来 03/07 15:06
67F:→ mayuyu: Intel QuickSync真的硬体支援VP9压缩 而不是驱动支援 03/07 15:06
68F:推 kaoh08: chrome有办法强制使用h.264吗? 03/07 15:27
69F:→ sziwu1100: 不喜欢用flash,连2倍快转功能都有问题 03/07 15:32
70F:→ andrew43: 我成功试出html5(h264),测了一二次,并没有像flash一样 03/07 20:07
71F:→ andrew43: 的结果。大概没有用到硬解。继续使用flash。 03/07 20:08
72F:推 hiroki03: Chrome可以装套件强制使用H.264阿,CPU使用率比起VP9降低 03/08 00:01
73F:→ hiroki03: 不少,道理就跟前面的推文一样 只是有没有支援硬解的差别 03/08 00:02
74F:→ hiroki03: 其实Chrome和Opera用HTML5(VP9)软解下,CPU的使用率也是 03/08 00:02
75F:→ hiroki03: 在2X%左右阿,跟Firefox差不多 03/08 00:03
76F:→ hiroki03: 其实我不太懂原PO特意去开VP9来测试是为了什麽? 03/08 00:03
77F:→ hiroki03: 因为目前FX 36.0.1本身VP9是预设关闭的 03/08 00:04
78F:→ hiroki03: 你没特意去开HTML5(VP9)的话其实就是跑HTML5的H.264 03/08 00:05
79F:→ hiroki03: 目前Fifefox用HTML5(H.264)在升36版後觉得算堪用了吧 03/08 00:06
80F:→ hiroki03: 比起之前35版好很多了 35版快转到常常没反应... 03/08 00:06
81F:→ hiroki03: 36版HTML5(H.264)1080P全萤幕模式 使用率也是跟Flash全 03/08 00:06
82F:→ hiroki03: 萤幕模式差不多,两者CPU使用率约都介於5%~10% 03/08 00:06
83F:→ Wcw5504: Chrome要强制播h.264就装h264ify 03/08 00:11
84F:→ andrew43: 36版在我的电脑似乎没用到硬多。37版如果还能用flash再 03/08 00:21
85F:→ andrew43: 来测一次。 03/08 00:22
86F:→ andrew43: 没用到硬解 03/08 00:22
87F:推 kaoh08: 请问目前有没有硬体能达成4k硬解??????????? 03/08 17:04
88F:推 kizajan: 当然有啊... 03/08 18:37
89F:→ kizajan: 随便google 4k硬解就能找到答案了 03/08 18:38
90F:推 kjhfm: FF38.0a2开启VP9会明显LAG 声音再跑 画面停止出现圈圈在转 04/05 02:15
91F:→ kjhfm: 把webm选项改掉後换成h.264就非常顺畅了 04/05 02:16