传输协议栈
WebSocket
WebTransport
Websocket | WebTransport |
---|---|
基于 HTTP/2 | 基于 HTTP/3 |
可靠传输 | 同时支持可靠 & 不可靠 |
只能由客户端发起 | 可由客户端和服务端发起 |
WebRTC | WebTransport |
---|---|
低延迟 | 高延迟 |
低码率 | 高码率 |
有望替代 WebRTC 成为后续推流的方式,但是需要 CDN 厂商跟进
WebRTC
Web Real-time Communication, 网页即时通讯 WebRTC 指南
场景:音视会议,P2P CDN,低延迟
核心步骤:
核心 API:RTCPeerConection,其余见WebRTC API - Web API 接口参考 | MDN
WebRTC NV
NV:Next Version
传输协议
简称 | 全程 | 全程 | 介绍 | 数据分段 | 延时 | 备注 |
---|---|---|---|---|---|---|
HLS | HTTP Live Streaming | 由苹果提出,基于 HTTP | 切片 | 取决于切片大小,通常 > 10s | .m3u8:索引文件 .ts:播放文件 兼容性好,HTML5 可以直接打开播放 | |
HDL | HTTP Dynamic Live | 通过 HTTP 传输 FLV 文件 | 连续流 | 可控制在1s,略好于 RTMP | ||
RTMP | Real TIme Messaging Protocol | Adobe 专利,最早用于 Flash,FLV | 连续流 | 1-3s | 多用于推流而不是拉流 | |
SRT | Secure Reliable Transport | 有望替代 RTMP | 大量占用网络资源 |
HLS
m3u8
Unicode 版本的 M3U 实质是一个播放列表
对于点播:顺序播放即可 对于直播:定时重新请求该文件
EXTINF:表示其后 URL 制定的媒体片段时长 EXT-X-xxxxx 一些通用的标签 EXT-BILI-AUX