FFmpeg 入門詳解 — 流媒體直播原理及應用

梅會東

  • 出版商: 清華大學
  • 出版日期: 2023-05-01
  • 定價: $534
  • 售價: 8.5$454 (限時優惠至 2024-04-30)
  • 語言: 簡體中文
  • 頁數: 360
  • 裝訂: 平裝
  • ISBN: 7302608636
  • ISBN-13: 9787302608639
  • 立即出貨

  • FFmpeg 入門詳解 — 流媒體直播原理及應用-preview-1
  • FFmpeg 入門詳解 — 流媒體直播原理及應用-preview-2
  • FFmpeg 入門詳解 — 流媒體直播原理及應用-preview-3
FFmpeg 入門詳解 — 流媒體直播原理及應用-preview-1

買這商品的人也買了...

商品描述

本書系統講解了流媒體和直播的基礎理論及應用,包括以下常用的流媒體協議:RTSP、RTP、RTCP、RTMP、HLS、HTTP-FLV。同時介紹了開源流媒體直播服務器,如Live555、SRS、Nginx-RTMP、ZLMediaKit等。本書是FFmpeg音視頻流媒體系列叢書的第二部。

全書共分為14章,涵蓋流媒體協議的基礎知識、直播的原理流程及架構分析以及開源直播點播庫,例如Live555、SRS、Nginx-RTMP、ZLMediaKit等。書中提供了豐富的示例,並以圖文並茂的方式呈現,旨在幫助讀者真正入門流媒體直播編程領域。

本書的知識體系相當完整,重點講解流媒體與直播的原理及應用。建議讀者先學習FFmpeg音視頻流媒體系列叢書的第一部,即音視頻原理及應用。講解過程由淺入深,使讀者在不知不覺中掌握流媒體協議的基礎理論知識,並能夠動手搭建直播平臺。

本書適合作為流媒體和直播方向的入門書籍,也可作為高年級本科生和研究生的學習參考書籍。

目錄大綱

目錄

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