《FFmpeg入門詳解——SDK二次開發與直播美顏原理及套用》是2023年2月1日清華大學出版社出版的圖書,作者:梅會東。
基本介紹
- 中文名:FFmpeg入門詳解——SDK二次開發與直播美顏原理及套用
- 作者:梅會東
- 出版時間:2023年2月1日
- 出版社:清華大學出版社
- ISBN:9787302626954
- 定價:139 元
- 印次:1-1
- 印刷日期:2023.03.02
內容簡介,圖書目錄,
內容簡介
本書系統講解了FFmpeg SDK二次開發及直播美顏的基礎理論及套用,包括FFmpeg各大核心組件,包括音視頻轉封裝、轉碼、濾鏡、音頻重採樣、視頻縮放等,包括讀取攝像頭和話筒,包括流媒體直播推流等功能。在本書的最後一章,介紹了OpenCV的圖像特效處理,並結合FFmpeg進行直播推流。本書為FFmpeg音視頻流媒體系列的第四部,前三部分別是《FFmpeg入門詳解——音視頻原理及套用》《FFmpeg入門詳解——流媒體直播原理及套用》和《FFmpeg入門詳解——命令行及音視頻特效原理及套用》。
全書共分為13章,系統講解了FFmpeg源碼編譯及環境搭建的基礎知識、轉封裝與轉碼、過濾器、音視頻採集功能、音頻重採樣、視頻縮放、流媒體直播等功能,並結合OpenCV進行圖像特效處理等。
書中包含大量的示例,圖文並茂,爭取讓一個音視頻流媒體領域的讀者真正入門,從此開啟流媒體直播編程的大門。本書知識體系比較完整,側重FFmpeg SDK二次開發及直播美顏的原理講解及套用。建議讀者先學習FFmpeg音視頻流媒體系列的前3部,然後來學習本書。本書的講解過程由淺入深,讓讀者在不知不覺中學會了FFmpeg SDK二次開發的基礎知識,並能動手實現各種轉碼功能、音視頻特效處理、並能實現流媒體直播功能。
本書可作為FFmpeg SDK二次開發、音視頻特效處理及流媒體直播方向的入門書籍,也可作為高年級本科生和研究生的學習參考書籍。
圖書目錄
目錄
第1章編譯FFmpeg源碼並搭建開發環境
1.1FFmpeg源碼簡介
1.2Windows平台下編譯FFmpeg 5.0源碼
1.2.1MinGW簡介
1.2.2安裝MSYS2
1.2.3更新MSYS2
1.2.4Pacman使用命令
1.2.5在MSYS2安裝依賴項
1.2.6使用MSVC工具鏈來編譯FFmpeg 5.0+Libx264+Libx265
1.2.7使用MinGW64工具鏈來編譯FFmpeg 5.0+Libx264
1.3Linux平台下編譯FFmpeg 5.0源碼
1.4搭建FFmpeg的Qt開發環境
1.5搭建FFmpeg的VS開發環境
1.6Linux下使用GCC編譯FFmpeg的程式
第2章把控FFmpeg骨架: “八大金剛”核心開發庫
2.1FFmpeg八大核心開發庫
2.2libavutil庫簡介
2.3libavformat簡介
2.4libavcodec庫簡介
2.5libpostproc庫簡介
2.6libavdevice庫簡介
2.7libavfilter庫簡介
2.8libswresample庫簡介
2.9libswscale庫簡介
第3章夯實FFmpeg基礎: 重要數據結構及API
3.1FFmpeg的讀者入門案例
3.1.1初識FFmpeg的API
3.1.2FFmpeg的解碼及播放流程
3.1.3使用FFmpeg解封裝並讀取流信息的案例
3.2FFmpeg的經典數據結構
3.2.1使用FFmpeg進行解碼的10個經典結構體
3.2.2AVPacket與AVFrame
3.3協定層的三大重要數據結構
3.4封裝層的四大重要數據結構
3.5編解碼層的三大重要數據結構
3.6FFmpeg的重要API函式
3.7Ubuntu下編譯並運行解封裝案例
第4章精通FFmpeg框架流程: 擊鼓傳花之責任鏈設計模式
4.1擊鼓傳花之責任鏈設計模式簡介
4.2FFmpeg的框架原理及流程分析
4.3FFmpeg的解碼流程分析
4.4FFmpeg的編碼流程分析
4.5FFmpeg的轉碼流程分析
4.5.1FFmpeg轉碼流程簡介
4.5.2FFmpeg的兩種轉碼方式
4.5.3基於RTP傳輸的FFmpeg轉碼套用
4.5.4FFmpeg轉碼流程小結
4.5.5視頻檔案轉碼流程案例分析
第5章AVUtil通用工具層理論及案例實戰
5.1AVUtil庫及相關API簡介
5.2AVLog套用案例及剖析
5.3AVParseUtil套用案例及剖析
5.4AVDictionary套用案例及剖析
5.5AVOption套用案例及剖析
第6章AVProtocol協定層理論及案例實戰
6.1協定層AVIO的流程及數據結構
6.2AVIO案例實戰之打開本地檔案
6.3AVIO案例實戰之打開網路直播流
6.4記憶體IO模式之自定義AVIO案例實戰
6.5記憶體映射檔案技術
第7章AVFormat封裝層理論及案例實戰
7.1封裝格式原理分析
7.1.1視頻封裝格式簡介
7.1.2使用FFmpeg處理音視頻的封裝與解封裝
7.2封裝層的重要API函式簡介
7.3FFmpeg解封裝案例實戰
7.4FFmpeg封裝格式之時間基與時間刻度
7.5FFmpeg解封裝後直接存儲AVPacket
7.6FFmpeg轉封裝案例實戰
第8章AVCodec編解碼層理論及案例實戰
8.1編解碼原理流程及API解析
8.2解碼流程與案例實戰
8.3編程流程與案例實戰
8.4FFmpeg編解碼與時間基詳解
第9章AVFilter過濾器層理論及案例實戰
9.1過濾器層的架構原理解析
9.1.1FFmpeg包含濾鏡的轉碼流程
9.1.2FFmpeg責任鏈模式簡介
9.1.3簡單濾鏡和複雜濾鏡之間的區別
9.1.4FFmpeg濾鏡流程圖
9.1.5濾鏡圖、濾鏡鏈、濾鏡之間的關係
9.1.6FFmpeg濾鏡相關的重要結構體
9.2DirectShow框架原理與流程解析
9.3FFmpeg過濾器層的重要API解析
9.3.1FFmpeg中使用過濾器的步驟
9.3.2AVFilter的API
9.4FFmpeg過濾器案例實戰
9.4.1FFmpeg命令行方式體驗過濾器
9.4.2FFmpeg的API方式實現過濾器
第10章SWResample音頻重採樣理論及案例實戰
10.1音頻重採樣簡介
10.1.1音頻基礎
10.1.2PCM簡介
10.1.3PCM重採樣
10.1.4C語言實現PCM重採樣
10.2SWResample庫結構簡介
10.2.1FFmpeg與PCM格式
10.2.2Packed和Planar的區別
10.2.3音頻播放時間計算
10.2.4C語言分離左右聲道
10.2.5lswr的使用流程及API簡介
10.3SWResample音頻重採樣案例實戰
10.3.1SwrContext使用步驟解析
10.3.2使用lswr實現PCM重採樣案例實戰
10.3.3Packed模式轉Planar模式
第11章SWScale圖像縮放與顏色空間轉換
11.1色彩空間轉換的原理簡介
11.2SWScale庫結構簡介
11.3SWScale圖片色彩空間轉換案例實戰
第12章AVDevice設備讀寫理論及案例實戰
12.1AVDevice的使用步驟及API解析
12.2AVDevice的API方式採集本地攝像頭獲取的數據
12.3VMWare中的Ubuntu採集本地攝像頭獲取的數據
12.4AVDevice的API方式採集話筒獲取的數據
12.5FFmpeg讀取網路視頻流並解碼為YUV
12.6給攝像頭實時添加水印後編碼為H.264
第13章FFmpeg直播綜合案例實戰
13.1直播系統架構及流程簡介
13.2流媒體伺服器的搭建
13.3FFmpeg進行RTMP直播推流
13.4兩個C++封裝類的小結
13.5OpenCV4基礎操作及磨皮美顏
13.6OpenCV4磨皮美顏並結合FFmpeg直播推流