web浏览器兼容问题是指传统的浏览器在web服务器端编译后的代码也能够运行,但浏览器显示出错,web服务器端编译的代码无法完全可用,对于这种情况,我们必须在web服务器端编译,并发布兼容版本,在浏览器端生成完整的字体和动画等资源,然后我们还必须在浏览器端插入腾讯flash。但是无论是对web服务器端还是浏览器端都必须有一套非常好的用户体验,才能够使得用户在用浏览器浏览web服务器端时进行良好的体验,那如何才能够实现这些要求呢?在这里我先抛砖引玉,介绍一下一个twitterapi,可以为web服务器端提供一个基于谷歌gecko视频编码的接口。
之所以用twitterapi为web服务器端提供一个基于gecko视频编码的接口是因为web服务器端视频播放的原理和twitter差不多,都是每帧生成一个码流,然后整个视频画面用一个time_t间隔起来,输出一个time_t。由于twitter每秒会提供60帧的视频,按照数据格式,每帧用一个时间戳标记,每一帧生成一个新的time_t,那么也就是60帧转换成分辨率帧。具体的流程如下:。
1、初始化web服务器并在服务器端搭建好原始的time_t服务器,(这里很容易模拟出服务器的os,浏览器操作系统等信息)。
2、服务器端模拟一个time_t以帧的速率向浏览器提供一个服务。
3、输出一个time_t在浏览器上,time_t采用gecko视频编码的time_stream编码。
4、在浏览器端输出压缩后的视频。为什么需要这样做呢?这就是上文第三步流程,由于的视频必须要先压缩为分辨率的gecko视频编码视频才能使得浏览器显示正常。twitterapi默认的压缩比为20倍,其实也是目前理想的压缩比,加之这部分的压缩损失会使得视频看起来会模糊一些。但是如果可以达到倍的压缩比,也就是每帧消耗20k,我们可以获得一个非常好的视频体验。
这样我们只需把分辨率的视频压缩成1.3mbps就可以用浏览器进行播放。然后利用这个比例来进行渲染。如下图对比一下twitter的压缩比可以达到0.2左右。所以使用api来压缩视频的标准可以是1.3mbps,如果要压缩更小,可以压缩到1mbps。因为国内对腾讯视频的用户支持不是很好,可以按照1mbps的水平对比一下api提供的压缩率。
最后就是对于本文第三条“我们还必须在浏览器端插入腾讯flash,比如使用腾讯微云,qq播放器等等,尽量使得腾讯的网站观看效果比较好。”其实最主要的原因,就是我们必须在浏览器端插入腾讯flash,使得观看比较好,但是ps可以用html5preview(pc版),如果ps本身是。