![]()
内容推荐 本书系统地介绍了实时音视频系统的基础概念、工具、编程方法。 全书分为10章,第1章介绍信息与文字编码的基础知识,以及跨平台网络编程的基本方法。第2、3章介绍视频的采集与渲染技术。第4、5章介绍音频的采集与渲染技术。第6章介绍编解码相关的压缩技术。第7章介绍信令与媒体流的建连过程。第8章介绍网络传输过程中的优化技术。第9章介绍实时音视频的应用与可扩展架构。第10章介绍音视频系统核心指标及其计算方法。每章既有对相关背景知识的介绍、对理论方法的说明,也有可实践的具体编程方法,章节后还附有相关的参考资料和练习题,可方便读者进一步学习与复习。 本书适合计算机、通信相关专业的在校大学生,以及希望全面了解实时音视频系统的技术人员阅读。 作者简介 戴维,上海交通大学计算机硕士,2009年毕业后在腾讯科技工作十余年;2020年加入字节跳动,参与实时音视频团队管理,同期任上海交通大学与复旦大学特聘企业讲师;2023年加入月之暗面,任开发部技术研究员。 擅长通信系统架构与跨平台编程,技术功底扎实。 爱好爬山、观影和阅读科技史。 目录 第1章 信息与传输 1.1 背景介绍 1.1.1 电报与无线电 1.1.2 计算机与互联网 1.1.3 主流平台简介 1.1.4 跨平台开发 1.2 二进制世界 1.2.1 一切皆比特 1.2.2 字节管理类 1.2.3 BufferViewer 1.3 文本表示 1.3.1 ASCII到GBK 1.3.2 Unicode与UTF-8 1.3.3 TextViewer 1.4 网络编程 1.4.1 网络协议 1.4.2 Socket与线程模型 1.4.3 HelloRTC服务器 1.4.4 HelloRTC客户端 第2章 视频帧与采集 2.1 像素与图像 2.1.1 视觉物理 2.1.2 像素与颜色空间 2.1.3 位图与视频帧 2.2 视频采集设备 2.2.1 采集设备枚举 2.2.2 图像采集参数 2.2.3 设备的热插拔通知 2.3 平台采集接口 2.3.1 Windows视频采集 2.3.2 macOS/iOS视频采集 2.3.3 Android视频采集 2.3.4 屏幕流与外部源 2.4 编码前处理 2.4.1 时间戳与计时 2.4.2 旋转角与朝向 2.4.3 视频前处理 2.4.4 管理视频帧 第3章 视频渲染 3.1 视频渲染基础 3.1.1 渲染设备 3.1.2 渲染技术 3.1.3 渲染流水线 3.2 平台渲染接口 3.2.1 Windows渲染 3.2.2 macOS/iOS渲染 3.2.3 Android渲染 3.2.4 Linux渲染 3.3 跨平台渲染 3.3.1 OpenGL编程 3.3.2 着色器编程 3.4 数字图像与视频 3.4.1 视频格式简介 3.4.2 AVI文件格式 第4章 音频采集 4.1 声音与音频帧 4.1.1 声音的物理属性 4.1.2 数字化音频 4.1.3 WAV文件与播放 4.2 音频采集设备 4.2.1 采集设备枚举 4.2.2 音量与静音 4.2.3 设备变更通知 4.2.4 音频路由选择 4.3 平台采集接口 4.3.1 Windows音频数据采集 4.3.2 macOS/iOS音频数据采集 4.3.3 Android音频数据采集 4.4 音频预处理 4.4.1 回声消除AEC 4.4.2 自动增益控制AGC 4.4.3 主动噪声抑制ANS 4.4.4 语音活动检测VAD 第5章 音频渲染 5.1 音频渲染基础 5.1.1 数字音频简介 5.1.2 音频渲染设备 5.1.3 音画同步 5.2 平台渲染接口 5.2.1 Windows音频渲染 5.2.2 macOS音频渲染 5.2.3 iOS音频渲染 5.2.4 Android音频渲染 5.3 高级音频渲染 5.3.1 混音与均衡 5.3.2 重采样 5.3.3 空间音频 5.3.4 音效技术 第6章 编解码压缩技术 6.1 文本压缩 6.1.1 文本压缩简介 6.1.2 霍夫曼编码 6.1.3 Deflate编解码 6.2 图像压缩 6.2.1 图像压缩简介 6.2.2 JPEG文件格式 6.2.3 JPEG解码 6.3 视频编解码 6.3.1 视频编解码器 6.3.2 MP4文件格式 6.3.3 比特率调整算法 6.4 音频编解码 6.4.1 音频编解码器 6.4.2 MP3文件格式 6.4.3 Opus编解码 第7章 信令与媒体协商 7.1 信令技术 7.1.1 信令通道 7.1.2 WebRTC基础概念 7.1.3 RTC信令设计 7.1.4 配置与连接点获取 7.2 媒体描述 7.2.1 SDP格式 7.2.2 SDPOffer 7.2.3 SDPAnswer 7.3 媒体建连 7.3.1 STUN 7.3.2 TURN 7.3.3 ICE 7.3.4 DTLS 7.4 发布订阅 7.4.1 RTP 7.4.2 RTCP 7.4.3 SCTP 第8章 传输控制优化 8.1 拥塞控制 8.1.1 带宽探测 8.1.2 GCC算法 8.1.3 BBR算法 8.2 弱网降级 8.2.1 弱网识别 8.2.2 分级策略 8.2.3 性能降级 8.3 抖动缓存与平滑发送 8.3.1 NetEQ 8.3.2 Pacer 8.4 错误恢复 8.4.1 超时重传 8.4.2 前向纠错 第9章 可扩展架构 9.1 应用概览 9.1.1 实时通话 9.1.2 会议与教育 9.1.3 游戏语音与虚拟现实 9.2 流水线 9.2.1 Node 9.2.2 典型流水线 9.3 服务端架构 9.3.1 媒体服务器 9.3.2 高可用网络 9.3.3 全球化部署 9.4 网络设备 第10章 评价指标 10.1 总体指标 10.1.1 成功类指标 10.1.2 延迟类指标 10.1.3 卡顿类指标 10.1.4 指标拆解与归因 10.2 视频质量评估 10.2.1 客观评测 10.2.2 主观评测 10.3 音频质量评估 10.3.1 客观评测 10.3.2 主观评测 10.4 网络质量评估 10.4.1 弱网测试标准 10.4.2 弱网测试工具 10.5 性能与稳定性 10.5.1 性能指标 10.5.2 稳定性指标 附录A 习题答案 附录B COM编程基础 附录C 构建工具CMake 附录D 调试技巧 附录E 编程环境 附录F JNI基础 附录G RTC术语 附录H WTL简介 附录I 索引 |