Please enable JavaScript.
Coggle requires JavaScript to display documents.
Streaming 技術 - Coggle Diagram
Streaming 技術
媒体封装
MP4
FLV
MOV
TS
MKV
WebM
協定
RTMP / RTSP
HLS
.m3u8
实时的 “切片回放”、时移直播、abr
LLHLS
播放列表增量更新
请求长连接
片段预加载
快速码率切换
LHLS
WebRTC
FLV
DASH
基于 HTTP 的动态自适应流(Dynamic Adaptive Streaming over HTTP,缩写 DASH,也称 MPEG-DASH)是一种自适应比特率流技术,使高质量流媒体可以通过传统的 HTTP 网络服务器以互联网传递。
.mpd
待研究
WebCodecs API
WASM
軟解
HTTP-FLV / ws-flv
Tune-in
gop cache 策略
主要問題
人多時連線數限制問題。
人多時頻寬問題。
人多時效能消耗問題。
遠距離看片卡頓的問題。
CDN
(Content Delivery Network)
來源
邊緣 CDN (Edge CDN):就是散布在不同地方的 CDN 節點。
來源 Server (Origin Server):就是原始資料存放地。
智能 DNS (Intelligent DNS):事實上是 DNS 的某個功能,它的主要功用就是可以幫用戶找到最近的 Edge CDN,這樣用戶就可以去最近的 CDN 拿資料了。
廠商
AWS CloudFront
問題
延遲會比沒有使用 CDN 還高,也就說沒使用 CDN 時直播主說話後要 5 秒鐘才能聽的到的話,那用了 CDN 可能就要 10 秒
流程
直播主 採集,編碼
硬編
軟編
網路傳輸
抖動
掉包
CDN/MediaServer 轉換協議處理
聽眾解碼
編碼
H.264 / H.265
MPEG-2 / MPEG-4
VC-1
Lib
hls.js
利用 MSE 将视频分片内容进行合流,并组成 HTML5 的 <video> 标签可播放的媒体资源文件
自適應
flv.js
通过 MSE 播放 HTTP-FLV 协议的视频直播流。
兼容不同格式
dash.js
自適應
名詞
ABR 自适应码率切换
點播/直播
推流/拉流
QoS 指標
首幀延遲
延遲設備差
平均端到端延遲
HTML5
MSE
(Media Source Extensions)
兼容不同格式
我们能够将原本播放器不支持的封装格式实时转封装为它能够支持的封装格式再喂给播放器。
自適應
我们还能让服务端提供多份码率的媒体流,根据当前用户的网络条件选择合适的媒体流喂给播放器,实现码率自适应。
媒体源扩展 API(MSE) 提供了实现无插件且基于 Web 的流媒体的功能。使用 MSE,媒体串流能够通过 创建,并且能通过使用 <audio> 和 <video> 元素进行播放。
MimeType
<video>
mp4、m3u8、webm、ogg
https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/609e8c6461034627b5b221f2147ad73d~tplv-k3u1fbpfcp-zoom-in-crop-mark:1512:0:0:0.awebp?