| 作者 |
| 亢少军 刘歧 赵文杰 |
| 丛书名 |
| 实战 |
| 出版社 |
| 机械工业出版社 |
| ISBN |
| 9782009111036 |
| 简要 |
| 简介 |
| 内容简介书籍计算机书籍 ---------------------------WebRTC音视频开发:React+Flutter+Go实战--------------------------- 本书系统介绍WebRTC技术的原理与应用,主要内容包括:WebRTC技术发展历史、应用场景、整体架构,WebRTC通话原理,Web开发环境搭建,HTML5项目简介,访问设备的设置,音视频设备的设置,音视频的录制,结合React+Flutter+Go技术开发音视频应用的案例。 ---------------------------FFmpeg从入门到精通--------------------------- 本书是一本介绍FFmpeg的实战技术指南,全书共10章,分为两个部分,主要讲解如何使用FFmpeg进行开发。第一部分(第1~7章)为FFmpeg的命令行使用篇,介绍了FFmpeg的基础组成部分、FFmpeg工具使用、FFmpeg的封装操作、FFmpeg的转码操作、FFmpeg的流媒体操作、FFmpeg的滤镜操作、FFmpeg的设备操作。第二部分(第8~10章)为FFmpeg的API使用篇,介绍了FFmpeg封装部分的API使用操作、FFmpeg编解码部分的API使用操作,FFmpeg滤镜部分的API使用操作,相关操作均以实例方式进行说明,包括新API及旧API的操作。 |
| 目录 |
---------------------------WebRTC音视频开发:React+Flutter+Go实战--------------------------- 前言 第一篇 基本概念 第1章 WebRTC概述2 1.1 WebRTC是什么2 1.2 WebRTC整体架构4 第2章 WebRTC通话原理7 2.1 概述7 2.2 媒体协商8 2.3 网络协商11 2.4 连接建立的流程15 第二篇 基础应用 第3章 HTML5示例工程准备18 3.1 开发环境搭建18 3.1.1 Node安装18 3.1.2 VSCode安装19 3.2 新建示例工程20 3.2.1 package.json配置21 3.2.2 babel支持24 3.2.3 webpack配置24 3.2.4 首页模板文件26 3.2.5 全局样式27 3.2.6 入口文件28 3.2.7 主组件及路由28 第4章 访问设备31 4.1 概述31 4.2 获取用户媒体数据32 4.3 打开摄像头33 4.4 打开麦克风35 4.5 截取视频38 4.6 共享屏幕41 4.7 视频滤镜45 第5章 音视频设置49 5.1 概述49 5.2 分辨率概述50 5.3 分辨率设置51 5.4 音量检测57 5.5 设备枚举60 5.6 设置综合示例67 第6章 媒体流与轨道77 6.1 概述77 6.2 媒体流78 6.3 MediaStreamTrack79 6.4 流与轨道API测试81 6.5 捕获Video媒体流85 6.6 捕获Canvas媒体流88 6.6.1 浏览器兼容性88 6.6.2 创建画布88 6.6.3 Canvas坐标系88 6.6.4 绘制API89 6.6.5 画板示例90 第7章 媒体录制95 7.1 媒体录制原理95 7.1.1 创建录制对象95 7.1.2 常用API97 7.1.3 录制事件97 7.2 录制音频97 7.3 录制视频103 7.3.1 约束条件的区别103 7.3.2 播放器的区别103 7.3.3 miniType的区别103 7.3.4 录制视频示例104 7.4 录制屏幕109 7.5 录制Canvas113 第8章 连接建立118 8.1 概述118 8.2 连接建立的过程119 8.3 连接建立示例122 8.3.1 视频清晰度自适应130 8.3.2 提议/应答信息131 8.3.3 Candidate信息131 8.4 将Video发送至远端132 8.5 流方式同步白板138 第9章 数据通道146 9.1 概述146 9.2 数据通道的概念147 9.3 发送文本消息147 9.4 发送文件154 9.4.1 FileReader155 9.4.2 读取数据156 9.4.3 发送文件示例157 第10章 App示例工程准备167 10.1 Windows环境搭建167 10.2 MacOS环境搭建173 10.3 App方案选取178 10.4 Flutter示例工程178 10.5 权限设置184 10.5.1 iOS平台设置184 10.5.2 Android平台设置184 10.6 项目配置185 10.7 入口程序186 第11章 App音视频技术189 11.1 概述189 11.2 GetUserMedia190 11.3 屏幕共享195 11.4 控制设备200 11.5 连接建立206 11.5.1 媒体约束206 11.5.2 连接约束207 11.5.3 SDP约束207 11.5.4 手机旋转方向207 11.5.5 连接建立示例207 11.6 数据通道215 第三篇 综合案例 第12章 一对一视频通话总体架构224 12.1 通话流程224 12.2 技术框架226 12.3 WebSocket226 12.4 信令设计228 第13章 服务器端实现230 13.1 Go开发环境搭建230 13.1.1 Windows环境搭建230 13.1.2 MacOS环境搭建231 13.2 开发工具232 13.3 后端工程介绍232 13.3.1 TURN服务器运行232 13.3.2 信令服务器233 13.4 依赖库管理234 13.5 工具库235 13.6 项目配置文件237 13.7 入口程序238 13.8 Socket服务240 13.9 P2P信令服务244 13.10 用户和会话信息248 13.11 房间管理及信令处理248 13.11.1 房间管理249 13.11.2 信令处理249 13.11.3 合并逻辑并测试252 第14章 Web端实现258 14.1 登录组件258 14.2 本地视频组件259 14.3 远端视频组件262 14.4 信令实现263 14.5 P2P客户端278 14.6 视频通话测试285 第15章 App端实现287 15.1 登录组件287 15.2 生成Id290 15.3 约束条件291 15.4 请求TurnServer292 15.5 ICE配置293 15.6 封装WebSocket294 15.7 定义状态297 15.8 信令实现298 15.9 P2P客户端312 15.10 整体测试318 ---------------------------FFmpeg从入门到精通--------------------------- 本书赞誉 推荐序一 推荐序二 推荐序三 前言 第一部分 FFmpeg的命令行使用篇 第1章 FFmpeg简介 2 1.1 FFmpeg的定义 2 1.2 FFmpeg的历史 2 1.3 FFmpeg的基本组成 3 1.4 FFmpeg的编解码工具ffmpeg 6 1.5 FFmpeg的播放器ffplay 9 1.6 FFmpeg的多媒体分析器ffprobe 9 1.7 FFmpeg编译 11 1.7.1 FFmpeg之Windows平台编译 11 1.7.2 FFmpeg之Linux平台编译 13 1.7.3 FFmpeg之OS X平台编译 15 1.8 FFmpeg编码支持与定制 16 1.8.1 FFmpeg的编码器支持 24 1.8.2 FFmpeg的解码器支持 25 1.8.3 FFmpeg的封装支持 27 1.8.4 FFmpeg的解封装支持 28 1.8.5 FFmpeg的通信协议支持 29 1.9 小结 29 第2章 FFmpeg工具使用基础 30 2.1 ffmpeg常用命令 30 2.1.1 ffmpeg的封装转换 37 2.1.2 ffmpeg的转码参数 38 2.1.3 ffmpeg的基本转码原理 38 2.2 ffprobe常用命令 40 2.3 ffplay常用命令 50 2.3.1 ffplay常用参数 50 2.3.2 ffplay高级参数 53 2.3.3 ffplay的数据可视化分析应用 57 2.4 小结 59 第3章 FFmpeg 转封装 60 3.1 音视频文件转MP4格式 60 3.1.1 MP4格式标准介绍 61 3.1.2 MP4分析工具 76 3.1.3 MP4在FFmpeg中的Demuxer 79 3.1.4 MP4在FFmpeg中的Muxer 80 3.2 视频文件转FLV 84 3.2.1 FLV格式标准介绍 84 3.2.2 FFmpeg转FLV参数 89 3.2.3 FFmpeg文件转FLV举例 89 3.2.4 FFmpeg生成带关键索引的FLV 91 3.2.5 FLV文件格式分析工具 91 3.3 视频文件转M3U8 93 3.3.1 M3U8格式标准介绍 93 3.3.2 FFmpeg转HLS参数 95 3.3.3 FFmpeg转HLS举例 96 3.4 视频文件切片 105 3.4.1 FFmpeg切片segment参数 105 3.4.2 FFmpeg切片segment举例 106 3.4.3 FFmpeg使用ss与t参数进行切片 110 3.5 音视频文件音视频流抽取 111 3.5.1 FFmpeg抽取音视频文件中的AAC音频流 111 3.5.2 FFmpeg抽取音视频文件中的H.264视频流 112 3.5.3 FFmpeg抽取音视频文件中的H.265数据 113 3.6 系统资源使用情况 114 3.7 小结 115 第4章 FFmpeg转码 116 4.1 FFmpeg软编码H.264与H.265 116 4.1.1 x264编码参数简介 117 4.1.2 H.264编码举例 118 4.2 FFmpeg硬编解码 130 4.2.1 Nvidia GPU硬编解码 130 4.2.2 Intel QSV硬编码 133 4.2.3 树莓派硬编码 137 4.2.4 OS X系统硬编解码 139 4.3 FFmpeg输出MP3 141 4.3.1 MP3编码参数介绍 141 4.3.2 MP3的编码质量设置 142 4.3.3 平均码率编码参数ABR 144 4.4 FFmpeg输出AAC 145 4.4.1 FFmpeg中的AAC编码器使用 145 4.4.2 FDK AAC第三方的AAC编解码Codec库 146 4.4.3 高质量AAC设置 148 4.4.4 AAC音频质量对比 149 4.5 系统资源使用情况 149 4.6 小结 150 第5章 FFmpeg流媒体 151 5.1 FFmpeg发布与录制RTMP流 151 5.1.1 RTMP参数说明 152 5.1.2 RTMP参数举例 152 5.2 FFmpeg录制RTSP流 159 5.2.1 RTSP参数说明 159 5.2.2 RTSP参数使用举例 159 5.3 FFmpeg录制HTTP流 163 5.3.1 HTTP参数说明 163 5.3.2 HTTP参数使用举例 163 5.3.3 HTTP拉流录制 166 5.3.4 拉取HTTP中的流录制FLV 166 5.4 FFmpeg录制和发布UDP / TCP流 166 5.4.1 TCP与UDP参数说明 166 5.4.2 TCP参数使用举例 167 5.4.3 TCP/UDP使用小结 172 5.5 FFmpeg推多路流 173 5.5.1 管道方式输出多路流 173 5.5.2 tee封装格式输出多路流 174 5.5.3 tee协议输出多路流 175 5.6 FFmpeg生成HDS流 176 5.6.1 HDS参数说明 177 5.6.2 HDS使用举例 177 5.7 FFmpeg生成DASH流 179 5.7.1 DASH参数说明 180 5.7.2 DASH参数使用举例 180 5.8 小结 181 第6章 FFmpeg滤镜使用 182 6.1 FFmpeg滤镜Filter描述格式 182 6.1.1 FFmpeg滤镜Filter的参数排列方式 182 6.1.2 FFmpeg滤镜Filter时间内置变量 183 6.2 FFmpeg为视频加水印 183 6.2.1 文字水印 183 6.2.2 图片水印 187 6.3 FFmpeg生成画中画 189 6.4 FFmpeg视频多宫格处理 192 6.5 FFmpeg音频流滤镜操作 193 6.5.1 双声道合并单声道 193 6.5.2 双声道提取 194 6.5.3 双声道转双音频流 195 6.5.4 单声道转双声道 196 6.5.5 两个音频源合并双声道 197 6.5.6 多个音频合并为多声道 198 6.6 FFmpeg音频音量探测 199 6.6.1 音频音量获得 199 6.6.2 绘制音频波形 200 6.7 FFmpeg为视频加字幕 201 6.7.1 ASS字幕流写入视频流 201 6.7.2 ASS字幕流写入封装容器 202 6.8 FFmpeg视频抠图合并 205 6.9 FFmpeg 3D视频处理 206 6.9.1 stereo3d处理3D视频 206 6.9.2 3D图像转换举例 207 6.10 FFmpeg定时视频截图 208 6.10.1 vframe参数截取一张图片 208 6.10.2 fps滤镜定时获得图片 209 6.11 FFmpeg生成测试元数据 210 6.11.1 FFmpeg生成音频测试流 210 6.11.2 FFmpeg生成视频测试流 211 6.12 FFmpeg对音视频倍速处理 212 6.12.1 atempo音频倍速处理 212 6.12.2 setpts视频倍速处理 213 6.13 小结 215 第7章 FFmpeg采集设备 216 7.1 FFmpeg中Linux设备操作 216 7.1.1 Linux下查看设备列表 216 7.1.2 Linux采集设备fbdev参数说明 217 7.1.3 Linux采集设备fbdev使用举例 217 7.1.4 Linux采集设备v4l2参数说明 218 7.1.5 Linux采集设备v4l2使用举例 218 7.1.6 Linux采集设备x11grab参数说明 220 7.1.7 Linux采集设备x11grab使用举例 220 7.2 FFmpeg中OS X设备操作 222 7.2.1 OS X下查看设备列表 223 7.2.2 OS X下设备采集举例 223 7.3 FFmpeg中Windows设备操作 227 7.3.1 FFmpeg使用dshow采集音视频设备 227 7.3.2 FFmpeg使用vfwcap采集视频设备 228 7.3.3 FFmpeg使用gdigrab采集窗口 229 7.4 小结 230 第二部分 FFmpeg的API使用篇 第8章 FFmpeg接口libavformat的使用 232 8.1 音视频流封装 232 8.2 音视频文件解封装 235 8.3 音视频文件转封装 237 8.4 视频截取 240 8.5 avio内存数据操作 242 8.6 小结 244 第9章 FFmpeg接口libavcodec的使用 245 9.1 FFmpeg旧接口的使用 245 9.1.1 FFmpeg旧接口视频解码 245 9.1.2 FFmpeg旧接口视频编码 248 9.1.3 FFmpeg旧接口音频解码 251 9.1.4 FFmpeg旧接口音频编码 252 9.2 FFmpeg新接口的使用 254 9.2.1 FFmpeg新接口音频编码 255 9.2.2 FFmpeg新接口音频解码 257 9.2.3 FFmpeg新接口视频编码 260 9.2.4 FFmpeg新接口视频解码 260 9.3 小结 261 第10章 FFmpeg接口libavfilter的使用 262 10.1 filtergraph和filter简述 262 10.2 FFmpeg中预留的滤镜 263 10.2.1 音频滤镜 263 10.2.2 视频滤镜 265 10.3 avfilter流程图 271 10.4 使用滤镜加LOGO操作 272 10.5 小结 275 |