近些年來,隨著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音視頻流媒體知識已經獲得了的年薪(幾乎沒有低於年薪的),這一點讓我感到非常興奮。將知識分享出去,是1變N的成效,看著大家成長起來,心裡確實有一股股暖流。學習是一個過程,沒有終點,唯有堅持,大家一起加油,為美好的明天而奮鬥。
由於時間倉促,書中難免存在不妥之處,請讀者見諒,並提寶貴意見。
梅會東
2022年7月8日於北京清華園