- RTC
直播发布流程:offer + answer 模型
直播订阅流程:
![在这里插入图片描述](https://img-blog.csdnimg.cn/cf422e7d3ffd48c889f1744e0ae159e3.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5YmN56uvX-S4g-aciA==,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
1. 使用UDP私有协议来进行媒体拉流
2. 适用高互动性的直播场景,如在线教育、电商直播、远程医疗
3. 低延时(< 300ms)和无卡顿
4. 快速切换分辨率,无需写上,服务器也可以根据用户网络情况,进行分辨率的切换
![在这里插入图片描述](https://img-blog.csdnimg.cn/5704bb12e4274daf8c9ba1247ea885fc.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5YmN56uvX-S4g-aciA==,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
RTC流程:
1. 推流客户端:采集本地音视频 --> 编码 --> 发送给RTN传输网络
2. RTN传输网络:接收数据,并转发给下行拉流客户端
3. 拉流客户端:接收数据 -->解码
- RTMP
直播流程:
- 是应用层的协议,基于TCP的流媒体传输协议,保证信息传输的可靠性。
- RTMP + CDN,借助CDN负载均衡系统,将内容推送到接近用户的边缘节点
- 适用于站点加速、点播、短视频等场景
- 为了视频流畅,收到媒体流的数据包之后不会立即解码,而是进行一个缓冲时间,多接收一些数据再进行播放。
- 延时大约1~3 秒
- 切换分辨率的时候,是需要和服务器重新进行协商的
3、音视频的播放
- webrtc使用video标签 + MediaStream进行播放
- rtmp 需要使用canvas,获取视频的每一帧,逐帧绘制视频
4、RTMP和RTC创建的播放器的区别
- RTCMP基于一个url可以拉流
- RTC需要和媒体服务协商一些媒体参数,进行拉流