第1章 Nginx基础 1
0 D5 d8 ^, ]4 ^& L" L1.1 Nginx概述及作用 1( G! q- J0 u" M5 P* h
1.1.1 可作为Web服务器 1
; G& M& K) c. }' D) D6 a1.1.2 可作为反向代理服务器 22 T$ d: ~/ _' N7 q' h1 z5 A$ Z
1.1.3 可作为邮件代理服务器 3
8 w2 ~$ S k/ ? O: Q; O S+ h1.2 为什么选择Nginx 32 Z4 k( M9 d/ S" I7 [, d
1.3 安装Nginx 4
- W4 l" `; s" C1.3.1 选择安装版本 4
0 o3 Z' P+ U! e+ e1.3.2 编译安装Nginx 5
: E/ z+ l. `3 y, \" F1.3.3 配置防火墙 7+ @+ l$ Q0 C$ t, t3 y
1.3.4 加入自启动和系统服务 9
0 E' m# C( s8 R! B1 _6 X1.3.5 加入系统变量 12
# M& K1 h1 R9 Q, S4 K1.4 Nginx命令行 13
5 }! v. M# ?* z6 k. e1 Z1.4.1 命令行参数 14; \$ X, F, h4 [4 A8 D
1.4.2 启动、停止和重启 15
% }) J4 N9 T! N {1.4.3 信号控制 17' N2 B( X7 y( ?
1.4.4 平滑升级 18# S# E# x$ b7 J' m2 m1 y
1.5 Nginx配置 19
& f2 H9 d% U# J1.5.1 配置命令 206 E0 u2 [; g* f5 U6 o' G+ Q
1.5.2 配置上下文 20
2 l3 g+ ~" S+ f O! O1.5.3 配置文件结构 21
+ r n2 Y% [! T* M& O! }1.5.4 配置变量 22 v, p$ a% x6 m) F2 N
1.5.5 配置实例 23
, x, @9 S+ g' P' j( `, S1.6 Nginx模块化体系 25
! }! Y: ]3 e+ I) j5 v1.6.1 模块概述 251 e' L1 k) q6 v$ R+ V! ?
1.6.2 模块分类 26
2 L; V, g m1 H! {$ X& Z1.7 本章小结 26
! V/ m C6 ?) [1 i% M" U9 s$ K% a第2章 Nginx-rtmp-module基础 27: ]7 U, A1 N6 ~7 Z: ?# r4 z
2.1 Nginx-rtmp-module介绍 27
- w& ~+ H; z' q& d0 Q6 b2.2 RTMP协议与HLS协议 28
# {! G8 }7 z/ s: F! n2 S2.2.1 RTMP协议 28
8 P1 T7 g" w- _! i2.2.2 HLS协议 29
0 F/ u& E E/ b" M2.3 NRM的搭建 34
, i% p* r2 R% z# N8 M5 I6 V& d2.4 搭建个直播系统 36+ W% k* H7 A. P* r
2.5 本章小结 40
, Q, M6 J a# w' t: q第3章 Nginx-rtmp-module进阶 41
5 r1 h# K# T$ a1 p- t3.1 如何使NRM支持HLS协议直播 411 E% T( ^$ Y9 c/ i g" u0 c* Y3 N4 Y
3.2 推/拉流与串流码 43
' \* y5 O. w* p7 |$ t" S3.3 Control控制器 43- o6 Y. E2 |. I1 q2 Q% h# ~3 F5 x
3.3.1 record命令 44
. M3 s: V5 `) ?: n* P/ c! i3.3.2 drop命令 47! J. s* W0 X! l) p5 T" _
3.3.3 redirect命令 474 k3 s! Y" ?. a7 A% w
3.4 数据统计模块 47- @5 D8 B0 J) \6 @& d! \" \
3.5 Exec相关功能 48# y0 G0 {+ u% H8 {* s- P$ ?; M
3.6 本章小结 48# y: ?* a; ~' k! k6 }- v5 C0 Y( _) r
第4章 Nginx-rtmp-module 应用 49
2 f, a% F5 ]2 H D4.1 FFmpeg 49
, }" @9 ]4 \5 F1 M1 \4.1.1 FFmpeg的安装 51% D( E. |* G+ E
4.1.2 FFmpeg的配置 54
- B4 U( A0 b- w$ K, w: H, c, S4.1.3 FFmpeg与直播的应用 59* V7 |! o/ R1 _# y$ H6 u8 Y
4.2 基础配置信息 592 V- |$ j: |7 T$ y- {9 x
4.3 本章小结 647 E/ [0 ]$ m. Y
第5章 Android端解决方案 654 L j8 ^7 Y+ b- A2 {) ^, d' L
5.1 移动端视频直播介绍 659 C, P# |+ n( ~0 l- Y4 ^
5.2 Yasea框架介绍 667 q1 w: ~5 ]: g* w) n) O9 U
5.3 IJKPlayer框架介绍 69+ e1 X( e4 s* f$ ? e
5.4 Android端开发实战 740 x* H& V8 W) x. w1 F; i
5.4.1 主要功能 75
0 t O- \* u. a" ~5 \5.4.2 框架导入 75; c2 k$ V e% h7 H
5.4.3 滤镜 77; t1 {4 [: a* r( ]# P
5.4.4 推流 80
/ X6 u8 ]! J; N5.4.5 拉流 833 M3 m$ ]. M D O
5.4.6 弹幕 90
& h, B6 `6 a2 o$ D. k9 ^% f5.5 本章小结 94
# y0 C& s+ O6 B' D) Z# C4 @第6章 iOS端解决方案 95/ H1 H! O4 _! ?( W, `& Z
6.1 iOS端视频直播介绍 950 ]" q: a. \: `: Q; \
6.2 SDK的选择和前期准备 96* p3 i# f. s ^. g; b3 t
6.3 GPUImage框架介绍 99
% j( d X' c: ~; U) G/ `2 L6.4 LFLiveKit框架介绍 1033 u5 c# e! B! u6 b5 W% M
6.5 IJKPlayer框架介绍 106
$ H9 W' W8 c4 @6.6 iOS端开发实战 110
( \3 U: M" i& _, C* Y6 z; R6.6.1 主要功能 110
9 n5 f' Z" w4 x7 Z3 z) Q# B. N1 M6.6.2 框架导入 111
6 ?+ ~; @( _* y4 L7 ?6.6.3 滤镜 112
5 E6 s, q/ N7 Q0 R5 n6.6.4 推流 116% A( L5 F9 e0 e6 V" Z
6.6.5 拉流 121
+ Z* \2 z! @2 n8 b6.6.6 点赞 126$ f- U% Y7 U# ]2 C& U$ f3 l
6.6.7 弹幕 1299 }& W, |) D3 G: H) Y
6.7 本章小结 132+ A; u1 @ a! a9 S& S- u( d, D
第7章 Web端解决方案 133/ }9 J1 o( r# W8 z
7.1 Adobe Flash Player 133
z; Q8 F* `! u3 l( y, `" m$ k( |& [7.1.1 Flash Player 134) d% x" J8 F4 h7 K: ?
7.1.2 为什么要使用Flash 134; M" p+ o( T, c( B# Y' N
7.2 ActionScript与Flex 1354 `' k1 H0 f5 k- @
7.2.1 Flex环境的搭建 135
" f, p- e- s! d4 h0 l9 s7.2.2 Flex项目的创建 1374 a* y9 M! o2 R
7.2.3 使用ActionScript组件 142& I+ i2 i; r8 w2 R- J0 p
7.2.4 NetStream对象 148
! d* D, W) Q3 ~4 Y; n7.2.5 获取视频流 149
) ~0 | }9 ]3 U' Z) v7.2.6 实例:使用as实现一个基础的推流器 151$ z' d7 S9 D" C7 h1 ~+ n& [
7.3 SWFObject 156
% ]* s2 {8 d% c$ D; q o7.3.1 为什么选择SWFObject 156
( T* f$ T! K% T/ v! @7.3.2 静态嵌入Flash Player 158
% s3 z9 @: t" z: N$ k9 p7.3.3 动态嵌入Flash Player 162" u# w" [ ^/ i6 S& e6 u
7.4 Flex与JavaScript的通信 167
- z. z9 `7 J/ r% _1 @7 O W) L# g4 v' L7.4.1 Flex调用JavaScript函数 1679 {% t; D9 L, x" T. f; `' A
7.4.2 使用JavaScript调用Flex函数 168
6 O9 @! A% O5 M! A7.4.3 使用JavaScript端获取SWF对象的引用 169
& J& ^( N2 O3 y* f# j. T9 Q7.4.4 实例:使用SWFObject将Flash播放器嵌入网页中 170- T! k4 W% M* c5 {/ u
7.5 播放器的制作 171
0 l' D, L7 x" i4 o7.5.1 主要功能 171+ L2 ~$ F& I$ E: o+ h* C. k
7.5.2 相关变量 172
9 J( A+ H" N% k3 _" t; F3 }/ t7.5.3 初始化视频画布 172
/ i3 W& e5 c1 U* o7 ]7.5.4 加载视频流并播放 1723 G* ?+ u: w5 u% Z; j4 T
7.5.5 高亮显示播放进度及缓冲进度 174
8 D! ^2 j: ]; G( G" Z. ?& ?, h7.5.6 视频的播放与暂停 1753 W/ \7 X% o8 e9 c
7.5.7 拖动滑块播放视频 176
9 [5 Z" \: C* |& x# G& b9 M7.5.8 播放结束处理 1775 @' V, ?' S% P+ g3 U- z
7.5.9 音量大小控制 177
8 w1 g" | Y# g0 A/ H
java8.com- Z1 R ] j/ D
7.5.10 全屏显示控制 1786 @! N3 G3 G+ I' y8 n
7.5.11 流数据字符格式化 178* w# s% O3 Z S5 s
7.5.12 视频画面的平滑优化处理 179
: W; D q/ E! U" ~/ a7.5.13 播放接口的调用 179
" U- d4 [! X, @5 C; I6 X7.5.14 实例:制作自定义播放器 180
1 |$ Y% x) |- Z2 |6 ~; _9 ]7.6 Web端开发实战 185, \# {& G4 k# b& Y% G
7.6.1 推流 185# N1 k3 e0 K) ^) g" z' n
7.6.2 拉流 195
; [4 M) X7 }, i0 o7 I3 w/ o- p/ ^$ K! r% O3 p! j" Z+ K" x