描述
內容簡介
★FFmpeg 繁體中文全球第 1 本 ★最完整 Know-How 與應用開發完全攻略! 【Video Makers 經常遇到的困難】: ►►►【FFmpeg】就是 Video Makers 的救星!
本書特色: ►►► 從影音原理解析到 FFmpeg 應用開發,邁向影音開發達人之路! ● 從原理說起,讓你先對影音資料有最完整的認識 ● 範例 code 超值下載:deepmind.com.tw
Ch01-06 影音技術的基礎知識
Ch07-09 命令列工具 FFmpeg/FFprobe/FFplay 的使用方法
Ch10-15 FFmpegSDK 編解碼的使用方法/封裝與解封裝/媒體資訊編輯 |
作者簡介
殷汶杰
2013 年畢業於上海大學資訊與通信工程學院,主要研究方向為視訊壓縮編碼、流媒體技術,其間發表了多篇高水準學術論文。具有多家一線互聯網上市公司、世界五百強企業與行業獨角獸公司的核心開發工作經驗,成功申請了多項專利(其中一項國際專利)。發表了數百篇技術博客,並發佈了多個線上教學課程,在行業內具有較強的技術影響力。 |
目錄
►►► PART 1 基礎知識
第 1 章 影音技術概述
第 2 章 圖型、像素與顏色空間
第 3 章 視訊壓縮編碼
第 4 章 音訊壓縮編碼
第 5 章 影音檔案容器和封裝格式
第 6 章 影音串流媒體協定
►►► PART 2 命令列工具 第 7 章 FFmpeg 的基本操作
第 8 章 濾鏡圖
第 9 章 串流媒體應用
►►► PART 3 開發實戰 第 10 章 FFmpeg SDK 的使用
第 11 章 使用 FFmpeg SDK 進行視訊編解碼
第 12 章 使用 FFmpeg SDK 進行音訊編解碼
第 13 章 使用 FFmpeg SDK 進行影音檔案的解封裝與封裝
第 14 章 使用 FFmpeg SDK 添加視訊濾鏡和音訊濾鏡
第 15 章 使用 FFmpeg SDK 進行視訊圖型轉換與音訊重採樣 |
序
多年來,影音、多媒體技術一直以各種各樣的形式對社會產生深刻影響,從專業領域的廣播電視到消費領域的個人數位攝影機等這些都已融入人們生活的各方面。進入網際網路時代,線上視訊、短視訊等娛樂場景,以及遠端會議、遠端醫療等專業應用進一步擴展了影音技術的應用領域,使其與現代文明的聯繫更加密不可分。
● 影音技術推動泛娛樂行業高速發展 在視訊網站平台的發展起起伏伏之際,另一種線上視訊娛樂的形態——網路互動直播開始異軍突起。直播本是歷史最悠久的視訊應用之一,多年以來廣電領域的數位電視廣播、閉路電視系統一直是直播系統的最典型應用。進入網際網路時代,直播的整體形態與產品細節與傳統的閉路電視系統相比發生了翻天覆地的變化,最典型的升級是從主播到觀眾的單方面放送,轉變為主播與觀眾的雙向互動,網路互動直播從萌芽到興起,到最為繁榮的「千播大戰」,直到最終經歷多次的兼併和淘汰,其中的倖存者已經寥寥無幾。 除中、長視訊外,隨著以智慧手機為代表的移動智慧裝置的日漸普及,短視訊作為一項新的業務形態逐漸佔據了消費者的碎片時間。通常認為短視訊起源自本世紀早期的微電影、網路短片和校園 DV 等形態,伴隨著各種 UGC 視訊平台的蓬勃發展而越發興盛。在智慧行動裝置全面進入人們的生活後,透過行動裝置進行「短、平、快」風格的內容分享重新點燃了短視訊行業的星星之火,低成本、快節奏的短視訊拍攝成為人們分享生活和觀點的重要手段。行動短視訊平台憑藉其豐富的內容和對使用者心理與喜好的研究在使用者中產生了巨大影響,成為當前基於影音的泛娛樂場景中新的一極。
● 影音技術給商務與辦公領域帶來新生命 目前主流的即時影音通訊解決方案主要基於 WebRTC 標準。與傳統的 RTMP+CDN 系統相比,基於 WebRTC 的方案延遲更低,卡頓情況更少,且支援直接連線瀏覽器進行推流與播放。
● 影音技術具有廣闊的發展前景和學習價值 另一方面,影音技術是軟體程式設計的一項高階技術,具有較高的存取控制門檻。一名優秀的影音專案師應當從原理到實踐做到融會貫通,至少需要掌握以下領域的知識與技能: 數學、資訊與編碼理論、電腦系統原理、演算法理論、程式設計語言(如 C++、Java、Go 等)、網路開發、跨平台軟體開發(如行動端、服務端和用戶端)和系統架構設計等。 因此,影音技術的學習之路比普通的軟體開發之路更加艱難、漫長。而另一方面,這也成為影音領域技術人員最好的護城河,為行業內的開發者提供了深入沉澱的機會。
● 本書的價值 儘管如此,對初學者來說,FFmpeg 提供的命令列工具和 SDK 的使用方法仍然較為困難。除影音的基本概念外,繁冗複雜的命令列參數與 API 常常讓初學者無從下手,除官方提供的文件外,幾乎沒有完備的技術資料可供參考。本書系統地講解了影音領域的基礎知識,並由淺入深地介紹了 FFmpeg 的基本使用方法,筆者希望本書的面世可以進一步降低影音開發的入門門檻,讓更多有志於從事影音開發的讀者可以為整個行業作出貢獻。
● 本書的內容及學習方法 ◎ 第 1~6 章為本書的第一部分,主要講解影音技術的基礎知識,包括影音編碼與解碼標準、媒體容器的封裝格式和網路串流媒體協定簡介。建議對影音技術不夠熟悉的讀者從該部分開始閱讀,有一定基礎的讀者可以選擇泛讀或跳過該部分。 ◎ 第 7~9 章為本書的第二部分,主要講解命令列工具 ffmpeg、ffprobe 和 ffplay的主要使用方法。命令列工具在架設測試環境、建構測試用例和排除系統 Bug 時常常造成重要作用。如果想要在實際工作中有效提升工作效率,那麼應熟練掌握 FFmpeg 命令列工具的使用方法。 ◎ 第 10~15 章為本書的第三部分,主要講解如何使用 libavcodec、libavformat 等 FFmpeg SDK 進行編碼與解碼、封裝與解封裝,以及媒體資訊編輯等影音基本功能開發的方法。在實際的企業級影音專案中,通常採用呼叫 FFmpeg 相關的 API 而非使用命令列工具的方式實現最基本的功能,因此該部分內容具有較強的實踐意義,推薦所有讀者閱讀並多加實踐。此部分的程式實現基本來自 FFmpeg 官方文件中的範例程式,筆者在此基礎上進行了一定的改編。書中程式整體上遵循了範例程式的指導,穩定性較強,且更易於理解。
● 勘誤與聯繫方式
● 致謝 感謝博文視點的編輯老師,你們的專業程度一直令我嘆服。沒有你們從開始到最終的指導和幫助,本書是一定無法完成的。 感謝各個技術交流群中的同行與朋友,以及我的網誌與課程的讀者,有了你們的支持,我才克服了所經歷的困難,將本書帶到你們的面前。 希望在不久的將來,能有更多更有價值的內容貢獻給大家,謝謝!
殷汶杰 |