# webLivePlayer **Repository Path**: cybertec/webLivePlayer ## Basic Information - **Project Name**: webLivePlayer - **Description**: web端直播的解决方案 - **Primary Language**: NodeJS - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2019-07-04 - **Last Updated**: 2022-05-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #webLivePlayer 目前 WEB 上主流的视频直播方案有 HLS 和 RTMP,移动 WEB 端目前就只有 HLS 能用,我们重点介绍它。 #HTTP Live Streaming HTTP Live Streaming(简称 HLS)是一个基于 HTTP 的视频流协议,由 Apple 公司实现,Mac OS 上的 QuickTime、Safari 以及 iOS 上的 Safari 都能很好的支持 HLS,高版本 Android 也增加了对 HLS 的支持。一些常见的客户端如:MPlayerX、VLC 也都支持 HLS 协议。 HLS 除了上回提到过的延迟很大这个缺点之外,在 iOS 的 Safari 浏览器中还只能全屏播放,也无法做到自动播放,这个是 iOS 系统对 Video 标签统一做的限制 #Real Time Messaging Protocol Real Time Messaging Protocol(简称 RTMP)是 Macromedia 开发的一套视频直播协议,现在属于 Adobe。这套方案需要搭建专门的 RTMP 流媒体服务如 Adobe Media Server,并且在浏览器中只能使用 Flash 实现播放器。它的实时性非常好,延迟很小。但是无法支持移动端 WEB 播放是它的硬伤。 #使用 WebSockets 进行 HTML5 视频直播 来自摄像头的视频被 ffmpeg 编码,然后通过 HTTP 传递给一个 Node.js 写的小脚本;脚本会将这条 MPEG 视频流通过 WebSockets 分发给所有链接的浏览器;浏览器使用 JavaScript 解码 MPEG 视频流并将解码后的画面渲染到 Canvas 元素上。目前暂时不支持音频。但它出乎意料地好用。 # 用强大的 webRTC(Web Real-Time Communication)是一个支持网页浏览器进行实时语音对话或视频对话的技术,缺点是只在 PC 的 chrome 上支持较好,移动端支持不太理想。 #Flash+ rtmp 可以实现(待研究) #亲测结果如下: RTMP: videojs:不支持移动端,PC端不支持safari,firefix得用flash videojs可以直接播放rtmp流但是不支持手机端 sewisePlayer:手机只支持微信。qq,微博不可以。PC端不支持safari,firefix得用flash, HLS: 用MediaElementjs播放.m3u8文件在手机端微信,qq,其他浏览器不可以,PC端都可以 sewisePlayer:.m3u8文件手机支持微信,qq, safari ,chrome,UC都可以,微博不可以。PC端都可以