FFmpeg入門詳解——SDK二次開發與直播美顏原理及應用( 簡體 字) | |
作者:梅會東 | 類別:1. -> 教材 -> 數位影像處理 |
出版社:清華大學出版社 | 3dWoo書號: 56250 詢問書籍請說出此書號! 有庫存 NT售價: 695 元 |
出版日:2/1/2023 | |
頁數:572 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787302626954 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
第1章編譯FFmpeg源碼并搭建開發環境
1.1FFmpeg源碼簡介 1.2Windows平臺下編譯FFmpeg5.0源碼 1.2.1MinGW簡介 1.2.2安裝MSYS2 1.2.3更新MSYS2 1.2.4Pacman使用命令 1.2.5在MSYS2安裝依賴項 1.2.6使用MSVC工具鏈來編譯FFmpeg5.0+Libx264+Libx265 1.2.7使用MinGW64工具鏈來編譯FFmpeg5.0+Libx264 1.3Linux平臺下編譯FFmpeg5.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直播推流 本書系統講解了FFmpeg SDK二次開發及直播美顏的基礎理論及應用,包括FFmpeg各大核心組件,包括音視頻轉封裝、轉碼、濾鏡、音頻重采樣、視頻縮放等,包括讀取攝像頭和話筒,包括流媒體直播推流等功能。在本書的最后一章,介紹了OpenCV的圖像特效處理,并結合FFmpeg進行直播推流。本書為FFmpeg音視頻流媒體系列的第四部,前三部分別是《FFmpeg入門詳解——音視頻原理及應用》《FFmpeg入門詳解——流媒體直播原理及應用》和《FFmpeg入門詳解——命令行及音視頻特效原理及應用》。
全書共分為13章,系統講解了FFmpeg源碼編譯及環境搭建的基礎知識、轉封裝與轉碼、過濾器、音視頻采集功能、音頻重采樣、視頻縮放、流媒體直播等功能,并結合OpenCV進行圖像特效處理等。 書中包含大量的示例,圖文并茂,爭取讓一個音視頻流媒體領域的讀者真正入門,從此開啟流媒體直播編程的大門。本書知識體系比較完整,側重FFmpeg SDK二次開發及直播美顏的原理講解及應用。建議讀者先學習FFmpeg音視頻流媒體系列的前3部,然后來學習本書。本書的講解過程由淺入深,讓讀者在不知不覺中學會了FFmpeg SDK二次開發的基礎知識,并能動手實現各種轉碼功能、音視頻特效處理、并能實現流媒體直播功能。 本書可作為FFmpeg SDK二次開發、音視頻特效處理及流媒體直播方向的入門書籍,也可作為高年級本科生和研究生的學習參考書籍。 近些年來,隨著5G網絡技術的迅猛發展,FFmpeg音視頻及流媒體直播應用越來越普及,音視頻流媒體方面的開發崗位也非常多,然而,市面上沒有一本通俗易懂的系統完整的FFmpeg SDK二次開發及直播美顏的入門圖書。網絡上的知識雖然不少,但是太散亂,不適合讀者入門。
眾所周知,FFmpeg命令行應用起來簡單,但SDK二次開發相對比較難以理解。很多程序員想從事音視頻或流媒體開發,但始終糊里糊涂、不得入門。筆者剛畢業時,也是純讀者一個,付出了艱苦的努力,終于有一些收獲。借此機會,整理成專業書籍,希望給讀者帶來幫助,少走彎路。 FFmpeg發展迅猛,功能強大,命令行也很簡單、很實用,但是有一個現象: 即便使用命令行做出了一些特效,但依然不理解原理,不知道具體的參數是什么含義。音視頻與流媒體是一門很復雜的技術,涉及的概念、原理、理論非常多,很多初學者不學基礎理論,而是直接做項目、看源碼,但往往在看到C/C++的代碼時一頭霧水,不知道代碼到底是什么意思。這是因為沒有學習音視頻和流媒體的基礎理論,就像學習英語,不學習基本單詞,而是天天聽英語新聞,總也聽不懂,所以一定要認真學習基礎理論,然后學習播放器、轉碼器、非編、流媒體直播、視頻監控等。 閱讀建議 本書是FFmpeg SDK二次開發及直播美顏的入門圖書,既有通俗易懂的基本概念,又有豐富的案例和原理分析,圖文并茂,知識體系非常完善。對音視頻、流媒體和直播的基本概念和原理進行復習,對重要的概念進行了具體的闡述,然后結合FFmpeg的SDK進行案例實戰,既能學到實踐操作知識,也能理解底層理論,非常適合初學者。建議讀者先學習FFmpeg音視頻流媒體系列的前3部,然后來學習本書。 本書總共13章。 第1~4章介紹FFmpeg 環境搭建、基礎架構、核心數據結構及重要API。 第5~13章介紹FFmpeg的八大核心開發庫,實現轉封裝、轉碼、過濾器、各種音視頻特效、直播功能、音視頻采集、音頻重采樣、視頻縮放等功能,并結合OpenCV對圖像進行特效處理等知識。 建議讀者在學習過程中,循序漸進,不要跳躍。本書的知識體系是編者精心準備的,由淺入深,層層深入,對于抽象復雜的概念和原理,筆者盡量通過圖文并茂的方式進行講解,非常適合初學者。從最基礎的FFmpeg SDK入門案例開始,理論與實踐并重,讀者一定要動手實踐,親自試驗各個案例,并理解原理和流程。首先詳細講解API函數選項,然后應用到具體的案例中,爭取每個案例都能將知識點活學活用。建議讀者將本系列的第一部和第二部所學的音視頻基礎知識和流媒體直播基礎知識應用到本書中,理論指導實踐,加深對每個知識點的理解。不但要會用FFmpeg的SDK來完成各種復雜的音視頻特效及直播功能,還要能理解底層原理及相關的理論基礎。最后進行分析總結,爭取使所學的理論得到升華,做到融會貫通。 致謝 首先感謝清華大學出版社責任編輯趙佳霓給編者提出了許多寶貴的建議,以及推動了本書出版。 在這里特別感謝雷(霄驊)博士對FFmpeg及音視頻流媒體開發所做出的無私奉獻,祝雷神在天堂一切安好。 感謝我的家人和親朋好友,祝大家快樂健康每一天。 感謝我的學員,群里的學員越來越多,并經常提出很多寶貴意見。隨著培訓時間和經驗的增長,對知識點的理解也越來越透徹,希望給大家多帶來一些光明,盡量讓大家少走彎路。群里的部分老學員通過學到的FFmpeg音視頻流媒體知識已經獲得了50萬元的年薪(幾乎沒有低于30萬元年薪的),這一點讓我感到非常興奮。將知識分享出去,是1變N的成效,看著大家成長起來,心里確實有一股股暖流。學習是一個過程,沒有終點,唯有堅持,大家一起加油,為美好的明天而奮斗。 由于時間倉促,書中難免存在不妥之處,請讀者見諒,并提寶貴意見。 梅會東 2022年7月8日于北京清華園 |