WebRTC技术详解:从0到1构建多人视频会议系统

WebRTC技术详解:从0到1构建多人视频会议系统

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

资深音视频专家撰写,全面讲解WebRTC,案例代码可直接用于视频会议、在线教育场景,开源商用视频会议系统。

内容简介

这是一本全面、详细讲解WebRTC技术以及如何使用它构建一个可商用的视频会议系统的著作。

技术维度,本书不仅详细讲解了WebRTC规范和全部API、信令系统、底层技术、移动端和服务端实现,而且还总结了作者多年来的“踩坑”经验;实战维度,本书不仅提供了可直接应用于视频会议和在线教育等场景的真实案例,而且开源了一个可商用的视频会议系统WiLearning,教读者如何从0到1搭建一个高并发、易扩展的视频会议系统。

全书一共10章:

第1章介绍了WebRTC的历史、技术架构、网络拓扑、兼容性等内容。

第2章讲解了使用WebRTC API获取本地摄像头、话筒、桌面等媒体流的方法,以及媒体流的录制、使用canvas操作媒体流的方法和示例。

第3章讲解了WebRTC底层使用的传输技术,如ICE、SDP、STUN/TURN等。

第4章介绍了使用RTCPeerConnection管理WebRTC连接的方法。

第5章介绍了WebRTC的媒体管理方法,结合示例演示了切换编码格式、控制视频码率、替换视频背景的方法。

第6章结合实例介绍一种高效、实时的信令系统实现方法,并实现一个可以在生产环境中使用的信令系统。

第7章介绍了使用WebRTC数据通道传输任意数据的方法,结合示例演示了基于P2P的文本聊天以及文件传输功能的实现。

第8章介绍了使用WebRTC获取媒体流相关统计数据的方法,在示例中演示如何使用Chart.js绘图展示实时码率。

第9章介绍了在Android、iOS开发环境中使用WebRTC的方法,通过实例实现了基于WebRTC的视频聊天App。

第10章结合笔者的开源项目WiLearning介绍了从0到1打造高性能视频会议系统的方法。

作者简介

作者栗伟,资深音视频技术专家,在该领域有多年实践经验,对WebRTC有非常深入的研究。曾任职于中科院计算所、CC视频,任职期间利用WebRTC技术开发了直播、在线课堂、视频会议等商业产品,并发用户数达到500万。开源社区的积极参与者,在GitHub上开源了视频会议项目WiLearning,免费供中小企业使用。

章节目录

版权信息

前言

第1章 WebRTC概述

1.1 WebRTC的历史

1.2 WebRTC的技术架构

1.3 WebRTC的网络拓扑

1.4 Simulcast联播

1.5 可伸缩视频编码

1.6 WebRTC的兼容性

1.7 其他直播技术

1.8 统一计划与Plan B

1.9 本章小结

第2章 本地媒体

2.1 媒体流

2.1.1 构造媒体流

2.1.2 MediaStream属性

2.1.3 MediaStream方法

2.1.4 MediaStream事件

2.2 媒体轨道

2.2.1 MediaStreamTrack属性

2.2.2 MediaStreamTrack方法

2.2.3 MediaStreamTrack事件

2.3 媒体约束

2.3.1 约束类型

2.3.2 数据类型与用法

2.3.3 通用约束

2.3.4 视频约束

2.3.5 音频约束

2.3.6 屏幕共享约束

2.3.7 图像约束

2.3.8 约束的advanced属性

2.4 媒体设备

2.4.1 WebRTC隐私和安全

2.4.2 获取摄像头与话筒

2.4.3 共享屏幕

2.4.4 查询媒体设备

2.4.5 监听媒体设备变化

2.5 从canvas获取媒体流

2.6 从媒体元素获取媒体流

2.7 播放媒体流

2.8 录制媒体流

2.8.1 构造MediaRecorder

2.8.2 MediaRecorder属性

2.8.3 MediaRecorder方法

2.8.4 MediaRecorder事件

2.9 示例

2.9.1 代码结构

2.9.2 获取图片像素数据

2.9.3 替换视频背景

2.10 本章小结

第3章 传输技术

3.1 RTP

3.2 RTCP

3.3 SRTP/SRTCP

3.4 TLS/DTLS

3.5 SDP

3.6 ICE

3.7 搭建STUN/TURN服务器

3.8 本章小结

第4章 连接管理

4.1 WebRTC建立连接的过程

4.1.1 会话描述信息RTCSessionDescription

4.1.2 pending状态与current状态

4.1.3 ICE候选者RTCIceCandidate

4.2 RTCPeerConnection接口

4.2.1 构造函数RTCPeerConnection

4.2.2 连接配置RTCConfiguration

4.2.3 RTCPeerConnection接口的属性

4.2.4 RTCPeerConnection接口的方法

4.2.5 RTCPeerConnection接口的事件

4.3 完美协商模式

4.3.1 SDP冲突问题

4.3.2 使用完美协商模式

4.3.3 再谈ICE重启

4.4 示例

4.4.1 运行示例

4.4.2 使用WebSocket

4.4.3 创建RTCPeerConnection的时机

4.5 本章小结

第5章 RTP媒体管理

5.1 WebRTC编解码

5.2 RTCPeerConnection RTP扩展

5.2.1 RTCPeerConnection扩展方法

5.2.2 RTCPeerConnection扩展事件

5.3 传输媒体流

5.3.1 无流轨道

5.3.2 有流轨道

5.4 RTP收发管理

5.4.1 RTCRtpTransceiver属性

5.4.2 RTCRtpTransceiver方法

5.5 RTP发送器

5.5.1 RTCRtpSender属性

5.5.2 RTCRtpSender方法

5.6 RTP接收器

5.6.1 RTCRtpReceiver属性

5.6.2 RTCRtpReceiver方法

5.7 DTLS传输层

5.7.1 RTCDtlsTransport属性

5.7.2 RTCDtlsTransport方法

5.7.3 RTCDtlsTransport事件

5.8 ICE传输层

5.8.1 RTCIceTransport属性

5.8.2 RTCIceTransport方法

5.8.3 RTCIceTransport事件

5.9 使用DTMF

5.9.1 RTCDTMFSender属性

5.9.2 RTCDTMFSender方法

5.9.3 RTCDTMFSender事件

5.10 RTC错误处理

5.11 通话的挂起与恢复

5.11.1 通话挂起

5.11.2 通话恢复

5.12 示例

5.12.1 动态设置视频码率

5.12.2 使用VP9和H264

5.12.3 使用虚拟背景

5.13 本章小结

第6章 信令服务器

6.1 使用Node.js

6.2 使用TypeScript

6.3 使用Express

6.4 使用Socket.IO

6.5 实现信令服务器

6.6 实现信令客户端

6.7 示例

6.8 本章小结

第7章 数据通道

7.1 SCTP

7.2 RTCPeerConnection数据通道扩展接口

7.3 RTCSctpTransport

7.4 RTCDataChannel

7.5 带内协商与带外协商

7.6 文字聊天与文件传输

7.7 本章小结

第8章 统计数据

8.1 统计数据入口

8.2 RTCStats及其扩展

8.3 实时码率监测

8.3.1 使用Chart.js

8.3.2 获取码率数据

8.4 本章小结

第9章 移动端WebRTC

9.1 原生应用与混合应用

9.2 原生开发环境

9.2.1 Android原生开发环境

9.2.2 iOS原生开发环境

9.3 WebView

9.4 Cordova

9.4.1 编译环境

9.4.2 全局配置config.xml

9.4.3 应用程序行为preference

9.4.4 应用程序图标icon

9.4.5 简单的WebRTC移动应用

9.4.6 调试Cordova应用

9.5 Ionic Framework

9.5.1 安装与使用

9.5.2 开发工具

9.6 基于Ionic的WebRTC移动应用

9.6.1 使用模板创建应用程序

9.6.2 首页组件

9.6.3 连接管理服务

9.6.4 视频与聊天组件

9.6.5 构建Android应用程序

9.6.6 构建iOS应用程序

9.7 本章小结

第10章 从0到1打造多人视频会议系统

10.1 整体设计

10.2 媒体服务器

10.2.1 OWT

10.2.2 Kurento

10.2.3 Janus

10.2.4 Mediasoup

10.2.5 媒体服务器的选择

10.3 Mediasoup信令交互过程

10.4 服务器端实现

10.4.1 房间与参与者

10.4.2 管理与监控接口

10.5 客户端实现

10.5.1 发布媒体流

10.5.2 订阅媒体流

10.5.3 共享桌面

10.5.4 共享本地媒体

10.5.5 文档及白板

10.5.6 文字聊天

10.6 传输质量监控

10.7 从网络故障中恢复

10.8 本章小结

WebRTC技术详解:从0到1构建多人视频会议系统是2021年由机械工业出版社华章分社出版,作者栗伟。

得书感谢您对《WebRTC技术详解:从0到1构建多人视频会议系统》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
30天App开发从0到1:APICloud移动开发实战 电子书
本书围绕APICloud平台,全面、系统、细致地讲述了App开发的相关内容,涉及平台工作原理、内部实现机制和应用开发技巧。本书涵盖了APICloud应用开发的知识,包括基础知识、关键技术、开发技巧和行业方案,并从实践角度出发,通过大量的实例代码、详细的操作步骤和丰富的开发截图,帮助开发人员迅速掌握APICloud应用开发,有能力制作出好的App。本书是APICloud开发人员的入门指南,并配有免费
从0到1:HTML5+CSS3修炼之道 电子书
站在完全零基础读者的角度,详尽介绍了HTML5和CSS3的基础知识、新技术及各种高级开发技巧。
从0到1:HTML5Canvas动画开发(全彩版) 电子书
作者根据自己多年的前后端开发经验,详尽介绍了HTML5 Canvas动画开发技术。
1小时出片:短视频制作从入门到精通 电子书
一本讲短视频制作与剪辑全流程教程图书。
从需求到产品:0岁产品经理进阶之道 电子书
协助“0岁产品经理”进入产品经理生涯中“发现问题”的阶段,让他们能够快速进入角色,掌握基本的知识,并发现自身的问题。