使用flv.js做直播
为什么要在这个时候探索flv.js做直播呢?原因在于各大浏览器厂商已经默认禁用Flash,之前常见的Flash直播方案需要用户同意使用Flash后才可以正常使用直播功能,这样的用户体验很致命。 在介绍flv.js之前先介绍下常见的直播协议以及给出我对它们的延迟与性能所做的测试得出的数据。 如果你看的很吃力可以先了解下音视频技术的一些 基础概念 。 常见直播协议 RTMP : 底层基于 TCP ,在浏览器端依赖Flash。 HTTP-FLV : 基于 HTTP 流式IO传输FLV,依赖浏览器支持播放FLV。 WebSocket-FLV : 基于 WebSocket 传输FLV,依赖浏览器支持播放FLV。 WebSocket 建立在 HTTP 之上,建立 WebSocket 连接前还要先建立 HTTP 连接。 HLS : Http Live Streaming,苹果提出基于 HTTP 的流媒体传输协议。 HTML5 可以直接打开播放。 RTP : 基于 UDP ,延迟1秒,浏览器不支持。 常见直播协议延迟与性能数据以下数据只做对比参考 传输协议 播放器 延迟 内存 CPU RTMP Flash 1s 430M 11% HTTP-FLV Video 1s 310M 4.4% HLS Video 20s 205M 3% 在支持浏览器的协议里,延迟排序是: RTMP = HTTP-FLV =