webrtc音视频实时互动技术
2021/12/3 6:06:54
本文主要是介绍webrtc音视频实时互动技术,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
序言
前言
第1章 - 音视频直播的前世今生
1.1 音视频的历史
1.2 移动互联网
1.3 音视频直播的两条技术路线
1.4 音视频直播的现状
1.5 音视频直播的未来
1.6 小结
第2章 - 为什么要使用webrtc
2.1 自研直播客户端架构
2.1.1 拆分音视频模块
2.1.2 跨平台
2.1.3 插件化管理
2.1.4 其他
2.2 webrtc客户端架构
2.3 小结
第3章 - 音视频实时通信的本质
3.1 两种指标
3.1.1 实时通信延迟指标
3.1.2 音视频服务质量指标
3.2 实时通信的主要矛盾
3.2.1 增加带宽
3.2.2 减少数据量
3.2.3 适当增加时延
3.2.4 提高网络质量
3.2.5 快速准确地评估带宽
3.3 小结
第4章 - 构建webrtc一对一信令服务器
4.1 webrtc一对一架构
4.2 细化结构
4.3 信令
4.3.1 信令定义
4.3.2 信令时序
4.3.3 信令传输协议的选择
4.4 构建信令服务器
4.4.1 信令服务器的实现方案
4.4.2 信令服务器的业务逻辑
4.4.3 信令服务器的实现
4.4.4 信令服务器的安装与部署
4.4.5 信令服务器的完整代码
4.5 小结
第5章 webrtc实现一对一通信
5.1 浏览器对webrtc的支持
5.2 遍历音视频设备
5.3 采集音视频数据
5.4 mediastream与mediastream-track
5.5 本地视频预览
5.6 信令状态机
5.7 RTCPeerConnection
5.7.1 创建RTCPeerConnection对象
5.7.2 RTCPeerConnection与本地音视频数据绑定
5.7.3 媒体协商
5.7.4 ICE
5.7.5 SDP与Candidate消息的交换
5.7.6 远端音视频渲染
5.7.7 客户端完整例子
5.8 小结
第6章 webrtc中的ICE实现
6.1 candidate种类与优先级
6.2 ICE策略
6.3 P2P连接
6.3.1 完全锥型NAT
6.3.2 IP限制锥型NAT
6.3.3 端口限制锥型NAT
6.3.4 对称型NAT
6.3.5 NAT类型检测
6.3.6 如何进行NAT穿越
6.4 网络中继
6.4.1 TURN协议中转数据
6.4.2 webrtc使用TURN协议
6.4.3 STUN/TURN服务器的安装与部署
6.5 小结
第7章 - webrtc中的SDP
7.1 SDP标准规范
7.2 webrtc中SDP的整体结构
7.3 媒体信息
7.3.1 音频媒体信息
7.3.2 视频媒体信息
7.3.3 SSRC与CNAME
7.4 PlanB与UnifiedPlan
7.5 webrtc如何保证数据安全
7.6 RTP扩展头
7.7 服务质量
7.8 SDP详解
7.9 ORTC
7.10 小结
第8章 各端的互联互通
8.1 webrtc native的核心
8.2 android端的实现
8.2.1 申请权限
8.2.2 引入webrtc库
8.2.3 构造peerconnection-factory
8.2.4 创建音视频源
8.2.5 视频采集
8.2.6 视频渲染
8.2.7 创建peerconnection
8.2.8 建立信令系统
8.3 IOS端的实现
8.3.1 申请权限
8.3.2 引入webrtc库
8.3.3 构造RTCPeerConnection-Factory
8.3.4 创建音视频源
8.3.5 视频采集
8.3.6 本地视频预览
8.3.7 建立信令系统
8.3.8 创建RTCPeerConnection
8.3.9 远端视频渲染
8.4 PC端与Mac端的实现
8.5 小结
第9章 网络传输协议RTP与RTCP
9.1 如何选择UDP与TCP
9.2 RTP
9.2.1 RTP协议头
9.2.2 RTP的使用
9.2.3 RTP扩展头
9.2.4 RTP中的填充数据
9.3 RTCP
9.3.1 RTCP报文分类
9.3.2 RTCP协议头
9.3.3 webrtc的反馈报文
9.4 小结
第10章 - webrtc拥塞控制
10.1 webrtc的拥塞控制算法
10.1.1 goog-remb
10.1.2 transport-cc
10.1.3 基于丢包的拥塞评估算法原理
10.1.4 webrtc拥塞控制流程
10.2 拥塞控制算法比较
10.2.1 拥塞控制的准确性
10.2.2 与TCP连接并存时的公平性
10.2.3 同种类型连接的公平性
10.2.4 拥塞控制算法在丢包情况下的表现
10.3 小结
第11章 - webrtc源码分析入门
11.1 webrtc源码的选择
11.2 webrtc开发环境的搭建
11.2.1 配置软硬件环境
11.2.2 安装依赖工具包
11.2.3 获取并编译webrtc代码
11.3 国内webrtc镜像
11.4 webrtc目录结构
11.4.1 webrtc主目录
11.4.2 modules目录
11.5 小结
第12章 分析webrtc源码的必经之路
12.1 信令服务器实现分析
12.1.1 信令服务器的组成
12.1.2 信令服务器的工作流程
12.2 PeerConnection客户端分析
12.2.1 运行peerconnection_client
12.2.2 peerconnection_client的组成
12.2.3 界面的展示
12.2.4 视频的渲染
12.2.5 webrtc的使用
12.2.6 信令的处理
12.3 小结
第13章 webrtc源码分析
13.1 webrtc的数据流
13.2 webrtc线程模型
13.2.1 webrtc线程的创建与使用
13.2.2 线程切换
13.3 网络传输
13.3.1 网络接收与分发模块类关系图
13.3.2 网络连接的建立
13.4 音视频数据采集
13.4.1 音频采集与播放
13.4.2 视频采集与渲染
13.5 音视频编解码
13.5.1 音频编码
13.5.2 音频解码
13.5.3 视频编码
13.5.4 视频解码
13.6 小结
这篇关于webrtc音视频实时互动技术的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享