由于国内网络环境十分恶劣,各大厂商都不同程度的对video
标签进行了劫持,比如腾讯的所谓X5内核,UC更是一塌糊涂.使安卓和IOS系统环境下原本已经完美的video
播放视频流成了很头疼的问题.
特别是安卓环境,基本上是没有一个浏览器支持用video
播放直播视频流,有也是诸多问题.
为了兼容这些浏览器.无需app也能观看直播,所以在各种比较下,jsmpeg脱颖而出.
将mpeg-ts
解码至canvas
,但同样不兼容的还是uc
这个越来越恶劣的浏览器.
打开jsmpeg的demo页,你会觉得很流畅很完美,实际上这是个错觉,因为视频页使用的服务器上已存在的ts
文件,播放时通过流方式加载到浏览器,和普通看视频没有任何区别.
但是,但是,但是!
直播不同点播,我们需要用websocket
,因为它只支持mpeg-1 ts
解码,这意味着常见的flv hls rtmp
等等协议方案都不支持.
然而websocket
意味着数据是片段进出,观看也会断断续续一卡一顿
的!
不信且看demo代码
:
网页端:
<!DOCTYPE html>
<html>
<head>
<title>测试</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=devic