H5直播总结

一、视频协议:

目前直播主流的协议有HLS和RTMP。

  1. HLS基于HTTP请求、响应。适合移动端。IOS支持比较好,高版本的android也支持。兼容问题网上有一些方案,sewise-player、MediaElement、videojs-contrib-hls、jwplayer;
    优点:适应性好、跨平台;缺点:有延迟现象。
  2. RTMP基于falsh。延迟小、实时性好。适合PC端、互动性比较强。HTML5 video标签无法播放 RTMP 协议的视频,可以通过 video.js 来实现。
    adobe公司到2020停止falsh。

二、直播流程:

  1. 采集端:通过摄像头、麦克风在电脑或者手机上采集;
  2. 服务端:通过服务器将采集的视频编译,然后推送到视频播放端;
  3. 播放端:播放端有手机电脑的播放器,H5的video标签、客户端的native播放器

三、直播形式:

  1. 底部H5的video视频层当背景播放
  2. 关注、评论、赞赏层,通过ajax时时发送或者获取信息

四、直播技术中的坑:

  1. autoplay中IOS中不支持,可以在clik、touch等事件中调用video.paly();
  2. 内联播放,playsinline;
  3. 视频层级问题,如果是QQ浏览器或者微信中,可以加 x5-video-player-type="h5"x5-video-player-fullscreen="true";
  4. video事件很多不支持,timeupdateended;
  5. 全屏问题,webkitEnterFullscreen()webkitRequestFullScreen();可以使用伪全屏的方式,就是设置video的宽高100%;
  6. 去掉IOS默认播放图标 video::-webkit-media-controls-start-playback-button { display: none; }