书籍详情

FFMPEG入门详解:流媒体直播原理及应用

FFMPEG入门详解:流媒体直播原理及应用

作者:梅会东

出版社:清华大学出版社

出版时间:2023-05-01

ISBN:9787302608639

定价:¥89.00

购买这本书可以去
内容简介
  本书系统讲解了流媒体和直播的基础理论及应用,包括RTSP、RTP、RTCP、RTMP、HLS、HTTP-FLV等常用的流媒体协议,包括Live555、SRS、Nginx-RTMP、ZLMediaKit等开源流媒体直播服务器。本书为FFmpeg音视频流媒体系列丛书的第二部。全书共分为14章:系统讲解了流媒体协议的基础知识、直播的原理流程及架构分析、Live555、SRS、Nginx-RTMP、ZLMediaKit等开源直播点播库。书中包含大量的示例,图文并茂,争取让一个音视频流媒体领域的读者真正入门,从此开启流媒体直播编程的大门。本书知识体系比较完整,侧重流媒体与直播的原理讲解及应用。建议读者先学习FFmpeg音视频流媒体系列丛书的第一部,即音视频原理及应用。讲解过程由浅入深,让读者在不知不觉中学会了流媒体协议的基础理论知识,并动手搭建直播平台。本书可作为流媒体和直播方向的入门书籍,也可作为高年级本科生和研究生的学习参考书籍。
作者简介
  梅会东,一个在音视频领域摸爬滚打20年的老程序员、培训师、作者,精通多种IT技术。参与设计和开发了多个音视频项目,包括播放器、视频服务器、全套直播系统等。精通多个音视频开源库项目,包括FFmpeg、Live555、SRS、Darwin、Nginx、WebRTC、ZLMediaKit等。 目前专注于音视频流媒体的教育传播事业,为多家大型国企单位培训音视频专业知识。
目录

第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章HTTPFLV流媒体协议


6.1HTTPFLV协议简介


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及httpflv模块


10.3.1Ubuntu 18下编译nginxrtmpmodule


10.3.2Ubuntu 18下编译nginxhttpflvmodule


10.3.3Windows 10下编译nginxhttpflvmodule


10.4nginx.conf配置文件详细讲解


10.4.1Nginx配置文件结构


10.4.2Nginx配置文件的指令解析


10.4.3Nginx配置文件关于nginxrtmpmodule配置指令详细讲解


第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拉流并播放



猜您喜欢

读书导航