ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## RTC 和 RTMP ### 1. RTC 直播发布流程:offer + answer 模型 ![](https://img.kancloud.cn/c6/f0/c6f0bdb345d48fd81039f685c5f79ec2_2889x1662.png) 直播订阅流程: ![](https://img.kancloud.cn/f2/77/f27789a8a41dd6fb5696e49a4a78ab24_1317x1599.png) ``` 1. 使用 UDP 私有协议来进行媒体推流 2. 适用高互动性的直播场景,如在线教育、电商直播、远程医疗 3. 低延时(< 300ms)和无卡顿 4. 快速切换分辨率,无需协商,服务器也可以根据用户网络情况,进行分辨率的切换 ``` ![](https://img.kancloud.cn/6f/0c/6f0c548401060ae6c4bcb519f5a5427b_1370x321.png) #### RTC流程: ``` 1. 推流客户端: 采集本地音视频 --> 编码 --> 发送给RTN传输网络 2. RTN传输网络: 接收数据,并转发给下行拉流客户端 3. 拉流客户端:接收数据 --> 解码 ``` ### 2. RTMP 直播流程: ![](https://img.kancloud.cn/7f/28/7f28e7be2daab202b19315e71a32354c_2275x1589.png) ``` 1. 是应用层的协议,基于 TCP 的流媒体传输协议,保证信息传输的可靠性。 2. RTMP + CDN, 借助 CDN 负载均衡系统,将内容推送到接近用户的边缘节点 3. 适用于站点加速、点播、短视频等场景 4. 为了视频流畅,收到媒体流的数据包之后不会立即解码,而是进行一个缓冲时间,多接收一些数据再进行播放。 5. 延时大约 1~3秒 6. 切换分辨率的时候,是需要和服务器重新进行协商的 ``` ### 3. 音视频的播放 * webrtc 使用video标签+MediaStream进行播放 * rtmp 需要使用canvas,获取视频的每一帧,逐帧绘制视频 ### 4. RTMP 和 RTC 创建的播放器的区别 * RTMP 基于一个 url 可以拉流 * RTC 需要和媒体服务协商一些媒体参数,进行拉流