前几天大湿忽然来问,现在视频播放器上的加速功能是肿么实现的,我还以为他老人家要跟风实现这个功能,结果发现是Maxthon推出了一个“马上看”功能,当你按下这个按钮时,播放的速度会整体加快,这样就可以快速地跳过广告,进入视频播放的部分了,我对此非常感兴趣,想知道它是如何实现的,我的尝试过程如下:
1 首先所有视频网站是不可能同意这样的广告快进功能的,所以这应该不是一个配合出来的行为,所以该功能应该具备一定的普遍性,且是从外围下手的。对于HTML5的player,由于其原生支持快速播放功能(在treehouse上面我用得很爽),方法是设置Video tag的playbackRate属性

就是说,只要通过dom找到对应的Video元素,把它的playbackRate改大就成了。
2 对于Flash,操作起来就没有那么简单,目前查到的资料表示,只有使用NetStream的step函数,在使用Adobe Media Server的情况下,才可以实现。我的实际测试办法如下:
在一个空白html页面中嵌入两个优酷的外链视频播放器,在Maxthon浏览器中打开后,会发现它的马上看功能照样奏效,而且是,加速一个,两个都跟着加速。
我又手写了一个简单的Flash视频播放器,还是奏效。
我想通过用Loader加载优酷播放器的方式,然后改变frameRate的方式来实现加速,发现不起作用,用于测试的小动画播放速度是在猛烈的提升,但是视频还是保持原来的速度。而其他任何能够干预Flash视频播放的方式,都很难从外部达成(至少我目前不知道)。
所以Maxthon作为浏览器开发厂商,应该是找到了能够直接干预FlashPlayer运行频率(或时钟频率)的办法,进而实现了它的快放功能。那么通过这些,我能干什么呢?

首先,如果花一些时间,看看能不能开发Chrome或者FireFox的插件来实现同样的功能(去扫描了一下Chrome extension的SDK,发现不是那么容易达成,不过我可以写一个Chrome extension的插件帮助我获取EF的订课信息)。

其次,从保护播放器的角度来说,可以通过监测帧频变化,Flash可以通过监控NetStream.currentFPS,来实现,可以很明显地发现连续的抽帧反应。用Windows版的Maxthon打开下面的例子就可以看到。

不过这种做法会招人恨吧,这是很奇怪的一件事,这件事对广告商和视频供应商是一件好事,对视频用户是一件十足的坏事。视频网站还是没有找到不招人恨的盈利方式。

另,通过实际测试,Maxthon尚未对已经更新为HTML5视频播放器的youtube以及vimeo播放器加速,也是没必要吧。毕竟人家youtube早就信心十足地推出skip ad功能了。

公司的人事震荡的结果是我们团队只剩下9个人,灵魂和基石离开了,我是能让它换个活法,还是加速死亡呢。这是个问题。眼下面临的挑战是,在一个月内开发出两个系统,以期获得收入的大反弹.

Stress!! When I feel really exhausted,I will have a EF lesson,That makes me feel more confidence .

老婆说,不开心的时候看看你这大侄女儿!她对着这张照片乐了半个小时。

2014-02-23 172331

提到的知识点:

NetStream.step()

HTML5Video

Chrome Extension Getting Start