注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)計(jì)算機(jī)組織與體系結(jié)構(gòu)FFmpeg 音視頻開發(fā)基礎(chǔ)與實(shí)戰(zhàn)

FFmpeg 音視頻開發(fā)基礎(chǔ)與實(shí)戰(zhàn)

FFmpeg 音視頻開發(fā)基礎(chǔ)與實(shí)戰(zhàn)

定 價(jià):¥108.00

作 者: 殷汶杰 著
出版社: 電子工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787121425554 出版時(shí)間: 2022-01-01 包裝: 平裝
開本: 16開 頁(yè)數(shù): 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  全書內(nèi)容分為三部分,共15 章。第1~6 章為第一部分,主要講解音視頻開發(fā)的基礎(chǔ)知識(shí),簡(jiǎn)要介紹音視頻技術(shù)的發(fā)展背景,以及主流的音視頻壓縮編碼算法、音視頻容器格式和網(wǎng)絡(luò)流媒體協(xié)議等。第7~9章為第二部分,主要講解命令行工具ffmpeg、ffprobe 和ffplay 的使用方法,包括如何使用這些工具進(jìn)行視頻播放、格式檢測(cè)、編轉(zhuǎn)碼、格式轉(zhuǎn)換和流媒體推拉流等操作;第10~15 章為第三部分,主要講解基于FFmpeg SDK 的開發(fā)實(shí)戰(zhàn),主要介紹如何在工程中調(diào)用libavcodec 和libavformat 等庫(kù)提供的接口實(shí)現(xiàn)音視頻處理的相關(guān)功能。本書適合從事音視頻編解碼、多媒體應(yīng)用開發(fā)和流媒體技術(shù)的初、中級(jí)開發(fā)者,以及各大院校學(xué)生閱讀,也適合有一定經(jīng)驗(yàn)的開發(fā)人員參考使用。

作者簡(jiǎn)介

  殷汶杰,2013年畢業(yè)于上海大學(xué)信息與通信工程學(xué)院,主要研究方向?yàn)橐曨l壓縮編碼、流媒體技術(shù),其間發(fā)表了多篇高水平學(xué)術(shù)論文。具有多家一線互聯(lián)網(wǎng)上市公司、世界五百?gòu)?qiáng)企業(yè)與行業(yè)獨(dú)角獸公司的核心開發(fā)工作經(jīng)驗(yàn),成功申請(qǐng)了多項(xiàng)專利(其中一項(xiàng)國(guó)際專利)。發(fā)表了數(shù)百篇技術(shù)博客,并發(fā)布了多個(gè)線上教學(xué)課程,在行業(yè)內(nèi)具有較強(qiáng)的技術(shù)影響力。

圖書目錄

第一部分 基礎(chǔ)知識(shí)

第1 章 音視頻技術(shù)概述 . 2
1.1 音視頻信息與多媒體系統(tǒng) 2
1.1.1 信息傳輸系統(tǒng)的發(fā)展 . 2
1.1.2 信息時(shí)代的音視頻技術(shù) . 4
1.1.3 音視頻技術(shù)的未來(lái)展望 . 5
1.2 典型的音視頻與多媒體系統(tǒng)結(jié)構(gòu) 6
1.2.1 視頻點(diǎn)播 . 7
1.2.2 視頻直播 . 8
1.2.3 安防監(jiān)控 . 9
1.2.4 視頻會(huì)議 . 9

第2 章 圖像、像素與顏色空間 . 11
2.1 圖像與像素 11
2.2 圖像的位深與顏色空間 12
2.2.1 圖像的位深 . 12
2.2.2 圖像的顏色空間 . 14
2.3 圖像壓縮編碼 15
2.3.1 圖像壓縮算法分類 . 16
2.3.2 圖像壓縮基本算法 . 16
2.3.3 常見的圖像壓縮編碼格式 . 20
第3 章 視頻壓縮編碼 22
3.1 視頻壓縮編碼的基礎(chǔ)知識(shí) 22
3.1.1 視頻信息的數(shù)字化表示 . 22
3.1.2 常用的視頻格式與分辨率 . 24
3.1.3 對(duì)視頻數(shù)據(jù)壓縮編碼的原因 24
3.2 視頻壓縮編碼標(biāo)準(zhǔn)的發(fā)展歷程 24
3.3 視頻壓縮編碼的基本原理 25
3.3.1 視頻數(shù)據(jù)中的冗余信息 . 25
3.3.2 預(yù)測(cè)編碼 . 26
3.3.3 變換編碼 . 27
3.3.4 熵編碼 . 28
3.4 視頻編碼標(biāo)準(zhǔn)H.264 . 28
3.4.1 H.264 簡(jiǎn)介 28
3.4.2 H.264 的框架 28
3.4.3 H.264 的基本算法 . 30
3.5 高效視頻編碼標(biāo)準(zhǔn)H.265 33
3.5.1 H.265 簡(jiǎn)介 33
3.5.2 H.265 的框架 33
3.5.3 H.265 的基本算法 . 35

第4 章 音頻壓縮編碼 42
4.1 音頻壓縮編碼的基礎(chǔ)知識(shí) 42
4.1.1 聲音信息的概念 . 42
4.1.2 聲音信息的基本要素 . 42
4.2 音頻信息采樣與數(shù)字化 43
4.2.1 模擬音頻 . 43
4.2.2 數(shù)字音頻 . 44
4.2.3 采樣和量化 . 44
4.3 脈沖編碼調(diào)制 46
4.3.1 PCM 量化區(qū)間分割 46
4.3.2 PCM 量化編碼規(guī)則 49
4.4 MP3 格式與MP3 編碼標(biāo)準(zhǔn) 51
4.4.1 MP3 格式 . 52
4.4.2 MP3 編碼標(biāo)準(zhǔn) . 62
4.5 AAC 格式與AAC 編碼標(biāo)準(zhǔn) . 67
4.5.1 AAC 格式 67
4.5.2 AAC 編碼標(biāo)準(zhǔn) 72

第5 章 音視頻文件容器和封裝格式 . 74
5.1 概述 74
5.2 FLV 格式 75
5.2.1 FLV 文件結(jié)構(gòu) . 75
5.2.2 FLV 文件頭 . 76
5.2.3 FLV 標(biāo)簽 . 77
5.3 MPEG-TS 格式 84
5.3.1 信息包頭 . 84
5.3.2 PES 包結(jié)構(gòu) . 85
5.3.3 PSI 結(jié)構(gòu) . 87
5.4 MP4 格式 . 88
5.4.1 MP4 格式簡(jiǎn)介 . 88
5.4.2 ISO 協(xié)議族 89
5.4.3 MP4 封裝格式 . 89
5.4.4 Box 類型 90
5.4.5 MP4 文件結(jié)構(gòu) . 92
5.4.6 構(gòu)建視頻流的播放時(shí)間軸 . 98

第6 章 音視頻流媒體協(xié)議 . 104
6.1 網(wǎng)絡(luò)協(xié)議模型 105
6.1.1 ISO/OSI 模型結(jié)構(gòu) 105
6.1.2 TCP/IP 模型結(jié)構(gòu) 106
6.2 網(wǎng)絡(luò)流媒體協(xié)議——RTMP 120
6.2.1 RTMP 的概念 120
6.2.2 RTMP 分塊與塊流 121
6.2.3 RTMP 信息格式 126
6.2.4 RTMP 信息與命令 129
6.3 網(wǎng)絡(luò)流媒體協(xié)議——HLS 協(xié)議 136
6.3.1 HLS 協(xié)議的概念 . 136
6.3.2 HLS 直播流媒體系統(tǒng)結(jié)構(gòu) . 136
6.3.3 HLS 索引文件格式 . 138

第二部分 命令行工具

第7 章 FFmpeg 的基本操作 144
7.1 FFmpeg 概述 144
7.1.1 各個(gè)編譯類型的區(qū)別 . 145
7.1.2 編譯FFmpeg 源代碼 148
7.2 ffplay 的基本使用方法 155
7.2.1 顯示ffplay 版本 155
7.2.2 顯示編譯選項(xiàng) . 156
7.2.3 設(shè)置日志級(jí)別 . 156
7.2.4 全屏播放 . 158
7.2.5 指定輸入視頻的寬、高和幀率 158
7.2.6 禁用音頻流、視頻流和字幕流 158
7.2.7 指定播放的起始時(shí)間和時(shí)長(zhǎng) 159
7.2.8 指定播放音量 . 159
7.2.9 設(shè)置播放窗口 . 159
7.3 ffprobe 的基本使用方法 159
7.3.1 顯示詳細(xì)的封裝格式信息 . 160
7.3.2 顯示每一路媒體流信息 . 161
7.3.3 顯示每一個(gè)碼流包的信息 . 164
7.3.4 顯示媒體流和碼流包的負(fù)載信息 165
7.3.5 顯示每一幀圖像的信息 . 167
7.3.6 指定檢測(cè)信息的輸出格式 . 169
7.4 ffmpeg 的基本使用方法 175
7.4.1 顯示版本和編譯配置信息 . 176
7.4.2 顯示支持的解復(fù)用器格式 . 177
7.4.3 顯示支持的復(fù)用器格式 . 179
7.4.4 顯示支持的所有輸入格式和輸出格式 181
7.4.5 顯示支持的解碼器 . 183
7.4.6 顯示支持的編碼器 . 184
7.4.7 顯示支持的媒體協(xié)議 . 186
7.4.8 顯示支持的硬件加速框架 . 188
7.4.9 ffmpeg 封裝格式轉(zhuǎn)換 . 188
7.4.10 視頻的解碼和編碼 . 193
7.4.11 從視頻中截取圖像 206
7.4.12 ffmpeg 視頻轉(zhuǎn)碼 . 207

第8 章 濾鏡圖 . 209
8.1 ffmpeg 音視頻濾鏡 209
8.1.1 簡(jiǎn)單濾鏡圖 . 209
8.1.2 復(fù)合濾鏡圖 . 210
8.1.3 ffmpeg 支持的濾鏡列表 . 211
8.2 簡(jiǎn)單濾鏡圖的應(yīng)用 212
8.2.1 常用的視頻編輯簡(jiǎn)單濾鏡圖 212
8.2.2 常用的音頻編輯簡(jiǎn)單濾鏡圖 227
8.3 復(fù)合濾鏡圖的應(yīng)用 230
8.3.1 常用的視頻編輯復(fù)合濾鏡圖 230
8.3.2 常用的音頻編輯復(fù)合濾鏡圖 234

第9 章 流媒體應(yīng)用 236
9.1 構(gòu)建SRS 流媒體服務(wù) . 236
9.1.1 部署RTMP 流媒體服務(wù) . 238
9.1.2 部署HLS 流媒體服務(wù) 240
9.1.3 部署HTTP-FLV 流媒體服務(wù) . 241
9.2 構(gòu)建Nginx RTMP 流媒體服務(wù) . 241
9.2.1 Nginx 的編譯和部署 242
9.2.2 Nginx 的流媒體模塊nginx-rtmp-module 246

第三部分 開發(fā)實(shí)戰(zhàn)
第10 章 FFmpeg SDK 的使用. 254
10.1 使用CMake 構(gòu)建工程 . 255
10.1.1 使用CMake 構(gòu)建Hello World 工程 255
10.1.2 在工程中編譯并輸出多個(gè)文件 257
10.1.3 在工程中添加頭文件和源文件目錄 259
10.1.4 在工程中引入動(dòng)態(tài)庫(kù) . 262
10.2 FFmpeg SDK 基本使用方法示例:獲取目錄下的文件信息 . 264
10.2.1 顯示指定目錄信息 . 264
10.2.2 解析API 和結(jié)構(gòu)體 . 266

第11 章 使用FFmpeg SDK 進(jìn)行視頻編解碼 269
11.1 libavcodec 視頻編碼 269
11.1.1 主函數(shù)與數(shù)據(jù)I/O 實(shí)現(xiàn) 269
11.1.2 視頻編碼器初始化 272
11.1.3 編碼循環(huán)體 284
11.1.4 關(guān)閉編碼器 289
11.1.5 FFmpeg 視頻編碼延遲分析 . 290
11.2 libavcodec 視頻解碼 294
11.2.1 主函數(shù)實(shí)現(xiàn) 294
11.2.2 視頻解碼器初始化 295
11.2.3 解碼循環(huán)體 297
11.2.4 關(guān)閉解碼器 304

第12 章 使用FFmpeg SDK 進(jìn)行音頻編解碼 306
12.1 libavcodec 音頻編碼 306
12.1.1 主函數(shù)實(shí)現(xiàn) . 306
12.1.2 音頻編碼器初始化 . 307
12.1.3 編碼循環(huán)體 . 310
12.1.4 關(guān)閉編碼器 . 313
12.2 libavcodec 音頻解碼 315
12.2.1 主函數(shù)實(shí)現(xiàn) . 315
12.2.2 音頻解碼器初始化 . 316
12.2.3 解碼循環(huán)體 . 318
12.2.4 關(guān)閉解碼器 . 324

第13 章 使用FFmpeg SDK 進(jìn)行音視頻文件的解封裝與封裝 . 326
13.1 音視頻文件的解封裝 326
13.1.1 主函數(shù)實(shí)現(xiàn) . 326
13.1.2 解復(fù)用器初始化 . 327
13.1.3 循環(huán)讀取碼流包數(shù)據(jù) . 335
13.1.4 釋放解復(fù)用器和解碼器 . 338
13.1.5 主函數(shù)的整體實(shí)現(xiàn) . 339
13.2 音頻流與視頻流文件的封裝 340
13.2.1 主函數(shù)實(shí)現(xiàn) . 340
13.2.2 音視頻流復(fù)用器的初始化 341
13.2.3 復(fù)用音頻流和視頻流 . 348
13.2.4 釋放復(fù)用器實(shí)例 . 353

第14 章 使用FFmpeg SDK 添加視頻濾鏡和音頻濾鏡 355
14.1 視頻濾鏡 355
14.1.1 主函數(shù)實(shí)現(xiàn) . 355
14.1.2 視頻濾鏡初始化 . 356
14.1.3 循環(huán)編輯視頻幀 . 365
14.1.4 銷毀視頻濾鏡 . 368
14.2 音頻濾鏡 370
14.2.1 主函數(shù)框架 . 370
14.2.2 音頻濾鏡初始化 . 371
14.2.3 循環(huán)編輯音頻幀 . 380
14.2.4 銷毀音頻濾鏡 . 381

第15 章 使用FFmpeg SDK 進(jìn)行視頻圖像轉(zhuǎn)換與音頻重采樣 . 383
15.1 視頻圖像轉(zhuǎn)換 383
15.1.1 主函數(shù)實(shí)現(xiàn) . 383
15.1.2 視頻格式轉(zhuǎn)換初始化 . 384
15.1.3 視頻的圖像幀循環(huán)轉(zhuǎn)換 . 388
15.1.4 視頻格式轉(zhuǎn)換結(jié)構(gòu)的銷毀和釋放 390
15.2 音頻重采樣 391
15.2.1 主函數(shù)實(shí)現(xiàn) . 392
15.2.2 音頻重采樣初始化 . 392
15.2.3 對(duì)音頻幀循環(huán)重采樣 . 397
15.2.4 音頻重采樣結(jié)構(gòu)的銷毀和釋放 400

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) hotzeplotz.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)