商品详情

89.00

FFMPEG入门详解——流媒体直播原理及应用 梅会东 著 清华大学出版社

数量

商品详情

FFMPEG入门详解——流媒体直播原理及应用 梅会东 著 清华大学出版社

  编辑推荐

  ★易教易学 系统阐述流媒体直播的基础知识,结合前沿技术,使读者建立起宏观的知识体系,掌握晦涩难懂的概念和理论,为后续流媒体直播开发打下坚实的基础。

  ★前后衔接 强调知识体系和分析方法的前后连贯性,并妥善处理好前期知识和后续知识的衔接性。

  ★应用方向 引导读者对各个流媒体直播应用领域进行探索,打开思路,包括视频监控、视频直播、编解码、智能匹配、远程教学、语音识别等,激发读者的学习兴趣,启发创新思想。

  内容简介

  本书系统讲解了流媒体和直播的基础理论及应用,包括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拉流并播放

  前言/序言

  近年来,随着4G、5G网络技术的迅猛发展,流媒体直播应用越来越普及,音视频流媒体方面的开发岗位也非常多,然而,市面上没有一本通俗易懂的系统完整的流媒体直播入门书籍。网络上的知识虽然不少,但是太散乱,不适合读者入门。

  众所周知,流媒体与直播知识非常复杂,入门很难。很多程序员想从事音视频或流媒体开发,但始终糊里糊涂、不得入门。笔者刚毕业时,也是一个纯读者,付出了艰苦的努力,终于有一些收获。借此机会,整理成专业书籍,希望对读者带来帮助,少走弯路。

  FFmpeg发展迅猛,功能强大,命令行也很简单、很实用,但是有一个现象: 即便使用命令行做出了一些特效,但有时依然不理解原理,不知道具体的参数是什么含义。音视频与流媒体是一门很复杂的技术,涉及的概念、原理、理论非常多,很多初学者不学基础理论,而是直接做项目、看源码,但往往在看到C/C++的代码时一头雾水,不知道代码到底是什么意思。这是因为没有学习音视频和流媒体的基础理论,就如学习英语,不学习基本单词,而是天天听英语新闻,总也听不懂,所以一定要认真学习基础理论,然后学习播放器、转码器、非编、流媒体直播、视频监控等。

  本书主要内容

  第1章介绍流媒体与直播基础理论、常用流媒体协议及直播基础知识。

  第2章介绍RTSP流媒体协议,讲解RTSP的概念、原理、流程、重要消息等。

  第3章介绍RTP与RTCP流媒体协议,包括RTP与RTCP的基础理论及JRTPLIB开源库。

  第4章介绍RTMP流媒体协议,包括RTMP的概念、原理、流程等。

  第5章介绍HLS流媒体协议,包括HLS协议、m3u8格式与切片、TS格式等。

  第6章介绍HTTPFLV流媒体协议,包括FLV格式等。

  第7章介绍流媒体开源库,包括FFmpeg、Live555、SRS、ZLMediaKit等。

  第8章介绍Live555搭建直播平台,包括项目简介、源码编译、点播流程等。

  第9章介绍EasyDarwin搭建直播平台,包括项目简介、安装部署等。

  第10章介绍Nginx搭建直播平台,包括项目简介、源码编译、直播平台搭建等。

  第11章介绍SRS搭建直播平台,包括项目简介、源码编译、直播平台搭建等。

  第12章介绍ZLMediaKit搭建直播平台,包括项目简介、源码编译、直播平台搭建等。

  第13章介绍WebRTC网页直播功能,包括项目简介、网页直播等。

  第14章介绍FFmpeg直播应用综合案例分析,包括推流、直播服务器、拉流播放等。

  阅读建议

  本书是一本适合读者入门的流媒体和直播的书籍,既有通俗易懂的基本概念,又有丰富的案例和原理分析,图文并茂,知识体系非常完善。对流媒体和直播的基本概念与原理进行了详细分析,对重要的概念进行了具体阐述,非常适合初学者。

  本书总共分为两大部分。

  第一部分,第1~6章介绍流媒体基础协议,包括RTSP、RTMP、HLS等。

  第二部分,第7~14章介绍几个常用的流媒体开源库,包括Live555、EasyDarwin、SRS、Nginx、ZLMediaKit等,并搭建直播系统。

  建议读者在学习过程中循序渐进,不要跳跃。

  本书的知识体系是笔者精心准备的,由浅入深,层层深入,对于抽象复杂的概念和原理,笔者尽量通过图文并茂的方式进行讲解。从最基础的流媒体协议开始,侧重讲解原理及流程分析,读者一定要动手实践,进行抓包分析,理解流程。后续逐步讲解几个常用的流媒体开源库,包括Live555、EasyDarwin、SRS、Nginx、ZLMediaKit、WebRTC等,要用所学的流媒体直播理论来指导实践,对每个开源库要动手编译安装,并搭建直播平台,从中深刻体会流媒体协议的应用。最后进行总结分析,争取使所学的理论升华,做到融会贯通。

  致谢

  感谢清华大学出版社责任编辑赵佳霓老师给笔者提出了许多宝贵的建议。

  感谢我的家人,特别感谢我的宝贝女儿和妻子,宝贝女儿一天天长大,非常可爱,妻子承担了所有的家务,非常辛苦。

  感谢我的学员,群里的学员越来越多,并经常提出很多宝贵意见。随着培训经验的积累,对知识点的理解也越来越透彻,希望给大家多带来一些光明,尽量让大家少走弯路。与大家一起努力,非常快乐。学习是一个过程,没有终点,唯有坚持。

  由于时间仓促,书中难免存在不妥之处,请读者见谅并提宝贵意见。

  梅会东

  2023年2月于北京清华园

  本书源代码


相关产品推荐

服务参数

- 本商品享受上述商家服务 - 关闭

商品参数

×