FFMPEG入门详解:流媒体直播原理及应用
作者:梅会东
出版社:清华大学出版社
出版时间:2023-05-01
ISBN:9787302608639
定价:¥89.00
第1章流媒体与直播基础理论
1.1流媒体简介
1.2流媒体协议
1.2.1TCP的三次握手与四次挥手
1.2.2视频流协议与编解码器
1.2.3常见的流媒体协议
1.3直播原理及应用
1.3.1视频直播原理与流程
1.3.2通用的视频直播模型
1.3.3视频直播系统的模块
第2章RTSP流媒体协议
2.1RTSP简介
2.1.1RTSP支持
2.1.2RTSP特点
2.2RTSP消息格式
2.2.1请求消息
2.2.2应答消息
2.3RTSP交互流程
2.4RTSP重要概念
2.5RTSP重要方法
2.6RTSP状态机
2.6.1客户端状态机
2.6.2服务器端状态机
2.7VLC作为RTSP流媒体服务器
2.8RTSP抓包流程分析
2.8.1安装Wireshark
2.8.2Wireshark抓取本地localhost的包
2.8.3使用Wireshark抓包分析RTSP交互流程
2.9RTSP与HTTP
2.10SDP
第3章RTP与RTCP流媒体协议
3.1RTP
3.1.1RTP格式
3.1.2RTP封装H.264
3.1.3RTP的会话过程
3.1.4RTP的抓包分析
3.2RTCP
3.2.1RTCP的5种分组类型
3.2.2RTCP包结构
3.2.3RTCP的注意事项
3.2.4RTCP的抓包分析
3.3RTP/RTCP与RTSP的关系
3.4开源库JRTPLIB简介
3.4.1Windows 10+VS 2015编译JRTPLIB
3.4.2Ubuntu 18编译JRTPLIB
3.4.3使用VS 2015搭建JRTPLIB开发环境并收发包案例解析
3.4.4RTP与H.264的相关结构体
3.4.5使用JRTPLIB发送H.264码流
3.5RTP扩展头结构
3.5.1RTP单扩展头
3.5.2RTP多扩展头
第4章RTMP流媒体协议
4.1RTMP简介
4.2RTMP交互流程
4.2.1RTMP握手
4.2.2RTMP建立连接
4.2.3RTMP建立流
4.2.4RTMP播放
4.2.5RTMP相关名词解释
4.3直播推流与拉流
4.3.1直播推流
4.3.2直播拉流
4.4RTMP消息
4.4.1RTMP块流
4.4.2消息块格式
4.4.3块基本头
4.4.4块消息头
4.4.5扩展时间戳
4.4.6消息分块流程解析
4.4.7协议控制消息
4.4.8用户控制消息
4.4.9其他消息类型
第5章HLS流媒体协议
5.1HLS协议简介
5.1.1HLS的索引文件的嵌套
5.1.2HLS服务器端和客户端工作流程
5.1.3HLS优势及劣势
5.1.4HLS主要的应用场景
5.2HLS协议详细讲解
5.2.1m3u8简介
5.2.2HLS播放模式
5.2.3TS文件
5.3m3u8格式讲解
5.4TS与PS格式简介
5.4.1ES、PES、PS、TS
5.4.2PS/TS编码基本流程
5.4.3PS/TS码流小结
5.5TS码流详细讲解
5.5.1TS包格式
5.5.2TS码流分析工具
5.5.3TS码流结构分析
5.5.4PAT及PMT表格式
5.6PS码流详细讲解
5.6.1PS码流结构
5.6.2PS码流的解析流程
5.7TS格式与m3u8切片
第6章HTTPFLV流媒体协议
6.1HTTPFLV协议简介
6.2HTTP简介
6.2.1HTTPS简介
6.2.2HTTP请求内容
6.2.3HTTP响应内容
6.2.4URL简介
6.3FLV格式简介
6.3.1FLV格式解析
6.3.2FLV的重要Tag说明
第7章流媒体开源库简介
7.1FFmpeg简介
7.1.1FFmpeg的模块与命令行工具
7.1.2FFmpeg命令行
7.1.3FFmpeg开发包
7.2Live555
7.3VLC播放器简介
7.3.1VLC播放器
7.3.2VLC的功能列表
7.3.3VLC播放网络串流
7.4EasyDarwin
7.4.1EasyDarwin开源项目
7.4.2EasyDarwin商业项目
7.4.3EasyDarwin云平台
7.5SRS
7.6ZLMediaKit
7.7WebRTC
7.7.1WebRTC架构
7.7.2视频分析
7.7.3声频分析
7.7.4浏览器支持
7.7.5组成部分
7.7.6重要API
第8章Live555搭建直播平台
8.1Live555简介
8.1.1Live555实现本地视频推流
8.1.2openRTSP客户端流程
8.2Live555源码编译
8.2.1Live555在Ubuntu下的源码编译
8.2.2Live555在Windows 10下的源码编译
8.3Live555点播服务器流程分析
第9章EasyDarwin搭建直播平台
9.1EasyDarwin项目简介
9.1.1主体框架
9.1.2模块分类
9.2EasyDarwin的安装部署
第10章Nginx搭建直播平台
10.1Nginx项目简介
10.2Nginx的安装方式
10.2.1Windows 10下安装Nginx
10.2.2Windows 10下安装OpenSSL
10.2.3Ubuntu 18下安装Nginx
10.2.4CentOS 8下安装Nginx
10.3编译rtmp及httpflv模块
10.3.1Ubuntu 18下编译nginxrtmpmodule
10.3.2Ubuntu 18下编译nginxhttpflvmodule
10.3.3Windows 10下编译nginxhttpflvmodule
10.4nginx.conf配置文件详细讲解
10.4.1Nginx配置文件结构
10.4.2Nginx配置文件的指令解析
10.4.3Nginx配置文件关于nginxrtmpmodule配置指令详细讲解
第11章SRS搭建直播平台
11.1SRS项目简介
11.2SRS源码安装与编译
11.2.1在Ubuntu 18上安装SRS
11.2.2在CentOS 7上安装SRS
11.3SRS集群cluster
11.3.1SRS集群简介
11.3.2SRS集群配置
11.4SRS配置文件详细讲解
11.4.1SRS配置文件的组成结构
11.4.2srs.conf
11.4.3ingest.conf
11.4.4hls.conf
11.5SRS启用WebRTC播放
11.5.1编译支持WebRTC的SRS
11.5.2推送RTMP视频流
11.5.3WebRTC播放视频流
第12章ZLMediaKit搭建直播平台
12.1Windows编译配置ZLMediaKit
12.2Linux编译安装ZLMediaKit
12.3ZLMediaKit二次开发简介
12.3.1test_httpApi.cpp文件
12.3.2test_pusher.cpp文件
12.3.3lambda函数介绍
第13章WebRTC网页直播
13.1WebRTC项目简介
13.2网络打洞STUN和TURN
13.2.1NAT穿透
13.2.2STUN与TURN
13.3WebRTC网页直播
13.3.1基于Coturn项目的STUN/TURN服务器搭建
13.3.2搭建信令服务器SignalMaster
13.3.3安装Web服务器Nginx
13.3.4创建基于WebRTC的网页视频会话
第14章FFmpeg直播应用综合案例分析
14.1直播系统架构简介
14.2流媒体服务器的应用
14.2.1完整的流媒体服务器系统
14.2.2开源的流媒体服务器项目应用
14.3使用FFmpeg进行RTMP推流
14.4使用VLC进行RTMP拉流并播放