一本书是二本浅显易懂的直播系统开发新手入门书藉。通过一本书小读者可以重零开始学习建立直播系统。一本书分成三部分,*部分(第1章)主要介绍Nginx,包括什么叫Nginx,应不应该选择Nginx,在特殊的环境下如何安装、配备及使用Nginx。第二部分(第2~4章)主要介绍来源于Nginx的Nginx-rtmp-module、FFmpeg模块的安装与配备,并全部地建立了一个简单的直播系统。第三部分(第5~7章)主要介绍在多POS机下怎么使用不同技术建立来源于直播的SDK,并介绍各种SDK相关技术框架结构。一本书适合对直播系统开发有爱好的人员、高级语言开发人员、音/视频研发入门者。
目录
- 第1章 Nginx基础 1
- 1.1 Nginx概述及作用 1
- 1.1.1 可作为Web服务器 1
- 1.1.2 可作为反向代理服务器 2
- 1.1.3 可作为邮件代理服务器 3
- 1.2 为什么选择Nginx 3
- 1.3 安装Nginx 4
- 1.3.1 选择安装版本 4
- 1.3.2 编译安装Nginx 5
- 1.3.3 配置防火墙 7
- 1.3.4 加入自启动和系统服务 9
- 1.3.5 加入系统变量 12
- 1.4 Nginx命令行 13
- 1.4.1 命令行参数 14
- 1.4.2 启动、停止和重启 15
- 1.4.3 信号控制 17
- 1.4.4 平滑升级 18
- 1.5 Nginx配置 19
- 1.5.1 配置命令 20
- 1.5.2 配置上下文 20
- 1.5.3 配置文件结构 21
- 1.5.4 配置变量 22
- 1.5.5 配置实例 23
- 1.6 Nginx模块化体系 25
- 1.6.1 模块概述 25
- 1.6.2 模块分类 26
- 1.7 本章小结 26
- 第2章 Nginx-rtmp-module基础 27
- 2.1 Nginx-rtmp-module介绍 27
- 2.2 RTMP协议与HLS协议 28
- 2.2.1 RTMP协议 28
- 2.2.2 HLS协议 29
- 2.3 NRM的搭建 34
- 2.4 搭建第一个直播系统 36
- 2.5 本章小结 40
- 第3章 Nginx-rtmp-module进阶 41
- 3.1 如何使NRM支持HLS协议直播 41
- 3.2 推/拉流与串流码 43
- 3.3 Control控制器 43
- 3.3.1 record命令 44
- 3.3.2 drop命令 47
- 3.3.3 redirect命令 47
- 3.4 数据统计模块 47
- 3.5 Exec相关功能 48
- 3.6 本章小结 48
- 第4章 Nginx-rtmp-module 应用 49
- 4.1 FFmpeg 49
- 4.1.1 FFmpeg的安装 51
- 4.1.2 FFmpeg的配置 54
- 4.1.3 FFmpeg与直播的应用 59
- 4.2 基础配置信息 59
- 4.3 本章小结 64
- 第5章 Android端解决方案 65
- 5.1 移动端视频直播介绍 65
- 5.2 Yasea框架介绍 66
- 5.3 IJKPlayer框架介绍 69
- 5.4 Android端开发实战 74
- 5.4.1 主要功能 75
- 5.4.2 框架导入 75
- 5.4.3 滤镜 77
- 5.4.4 推流 80
- 5.4.5 拉流 83
- 5.4.6 弹幕 90
- 5.5 本章小结 94
- 第6章 iOS端解决方案 95
- 6.1 iOS端视频直播介绍 95
- 6.2 SDK的选择和前期准备 96
- 6.3 GPUImage框架介绍 99
- 6.4 LFLiveKit框架介绍 103
- 6.5 IJKPlayer框架介绍 106
- 6.6 iOS端开发实战 110
- 6.6.1 主要功能 110
- 6.6.2 框架导入 111
- 6.6.3 滤镜 112
- 6.6.4 推流 116
- 6.6.5 拉流 121
- 6.6.6 点赞 126
- 6.6.7 弹幕 129
- 6.7 本章小结 132
- 第7章 Web端解决方案 133
- 7.1 Adobe Flash Player 133
- 7.1.1 Flash Player 134
- 7.1.2 为什么要使用Flash 134
- 7.2 ActionScript与Flex 135
- 7.2.1 Flex环境的搭建 135
- 7.2.2 Flex项目的创建 137
- 7.2.3 使用ActionScript组件 142
- 7.2.4 NetStream对象 148
- 7.2.5 获取视频流 149
- 7.2.6 实例:使用as实现一个基础的推流器 151
- 7.3 SWFObject 156
- 7.3.1 为什么选择SWFObject 156
- 7.3.2 静态嵌入Flash Player 158
- 7.3.3 动态嵌入Flash Player 162
- 7.4 Flex与JavaScript的通信 167
- 7.4.1 Flex调用JavaScript函数 167
- 7.4.2 使用JavaScript调用Flex函数 168
- 7.4.3 使用JavaScript端获取SWF对象的引用 169
- 7.4.4 实例:使用SWFObject将Flash播放器嵌入网页中 170
- 7.5 播放器的制作 171
- 7.5.1 主要功能 171
- 7.5.2 相关变量 172
- 7.5.3 初始化视频画布 172
- 7.5.4 加载视频流并播放 172
- 7.5.5 高亮显示播放进度及缓冲进度 174
- 7.5.6 视频的播放与暂停 175
- 7.5.7 拖动滑块播放视频 176
- 7.5.8 播放结束处理 177
- 7.5.9 音量大小控制 177
- 7.5.10 全屏显示控制 178
- 7.5.11 流数据字符格式化 178
- 7.5.12 视频画面的平滑优化处理 179
- 7.5.13 播放接口的调用 179
- 7.5.14 实例:制作自定义播放器 180
- 7.6 Web端开发实战 185
- 7.6.1 推流 185
- 7.6.2 拉流 195