書名:AI時代不缺席:RTC即時音訊程式設計最高指導書
原文書名:
產品代碼:
9786267383995系列編號:
DM2460定價:
980元作者:
戴維頁數:
512頁開數:
17x23x2.51裝訂:
平裝上市日:
20240919出版日:
20240919出版社:
深智數位股份有限公司CIP:
312.161市場分類:
電腦資訊產品分類:
書籍免稅聯合分類:
電腦資訊類- ※在庫量小
商品簡介
★即時通信(RTC)發展迅速,深入工作與生活。
★使用RTC進行語音視頻交流、線上辦公、線上輔導、與朋友語音聊天等。
★闡述 RTC 技術的書籍極少。
★RTC 技術的複雜性涉及多個學科,難以單一視角全面闡述。
★RTC 技術發展迅速,標準日新月異。
★流行的開源 RTC 系統歷史悠久、體量大,不適合初學者入門。
★5G 寬帶普及,WebRTC 確立了 RTC 的 W3C 標準。
★需要從頭審視 RTC 系統的各個組成部分,以分析其必要性與實現方式。
★書中將分層次、分階段介紹 RTC 概念、格式、工具及基礎模塊程序設計。
本書系統地介紹了即時音視訊系統的基礎概念、工具、程式設計方法,全書分為10章。
第1章介紹資訊與文字編碼的基礎知識,以及跨平臺網路程式設計的基本方法。
第2、3章介紹視訊的擷取與著色技術。
第4、5章介紹音訊的擷取與著色技術。
第6章介紹編解碼相關的壓縮技術。
第7章介紹信令與媒體串流的建連過程。
第8章介紹網路傳輸過程中的最佳化技術。
第9章介紹即時音視訊的應用與可擴充架構。
第10章介紹音視訊系統核心指標及其計算方法。
每章既有對相關背景知識的介紹、對理論方法的說明,也有可實踐的具體程式設計方法,章節後還附有相關的參考資料和練習題,可方便讀者進一步學習與複習。
本書適合電腦、通訊相關專業的在校大學生,以及希望更加了解即時音視訊系統的技術人員閱讀。
★即時通信(RTC)發展迅速,深入工作與生活。
★使用RTC進行語音視頻交流、線上辦公、線上輔導、與朋友語音聊天等。
★闡述 RTC 技術的書籍極少。
★RTC 技術的複雜性涉及多個學科,難以單一視角全面闡述。
★RTC 技術發展迅速,標準日新月異。
★流行的開源 RTC 系統歷史悠久、體量大,不適合初學者入門。
★5G 寬帶普及,WebRTC 確立了 RTC 的 W3C 標準。
★需要從頭審視 RTC 系統的各個組成部分,以分析其必要性與實現方式。
★書中將分層次、分階段介紹 RTC 概念、格式、工具及基礎模塊程序設計。
本書系統地介紹了即時音視訊系統的基礎概念、工具、程式設計方法,全書分為10章。
第1章介紹資訊與文字編碼的基礎知識,以及跨平臺網路程式設計的基本方法。
第2、3章介紹視訊的擷取與著色技術。
第4、5章介紹音訊的擷取與著色技術。
第6章介紹編解碼相關的壓縮技術。
第7章介紹信令與媒體串流的建連過程。
第8章介紹網路傳輸過程中的最佳化技術。
第9章介紹即時音視訊的應用與可擴充架構。
第10章介紹音視訊系統核心指標及其計算方法。
每章既有對相關背景知識的介紹、對理論方法的說明,也有可實踐的具體程式設計方法,章節後還附有相關的參考資料和練習題,可方便讀者進一步學習與複習。
本書適合電腦、通訊相關專業的在校大學生,以及希望更加了解即時音視訊系統的技術人員閱讀。
作者簡介
戴維
上海交通大學計算機碩士,2009年畢業後在騰訊科技工作十餘年;2020年加入位元組跳動,參與實時音視頻團隊管理,同期任上海交通大學與復旦大學特聘企業講師;2023年加入月之暗面,任開發部技術研究員。擅長通信系統架構與跨平臺編程,技術功底紮實。愛好爬山、觀影和閱讀科技史。
書籍目錄
第1章 信息與傳輸
1.1 背景介紹
1.2 二進位世界
1.3 文本表示
1.4 網路編程
第2章 視頻幀與採集
2.1 像素與圖像
2.2 視頻採集設備
2.3 平台採集介面
2.4 編碼前處理
第3章 視頻渲染
3.1 視頻渲染基礎
3.2 平台渲染介面
3.3 跨平台渲染
3.4 數字圖像與視頻
第4章 音頻採集
4.1 聲音與音頻幀
4.2 音頻採集設備
4.3 平台採集介面
4.4 音頻預處理
第5章 音頻渲染
5.1 音頻渲染基礎
5.2 平台渲染介面
5.3 高級音頻渲染
第6章 編解碼壓縮技術
6.1 文本壓縮
6.2 圖像壓縮
6.3 視頻編解碼
6.4 音頻編解碼
第7章 信令與媒體協商
7.1 信令技術
7.2 媒體描述
7.3 媒體建連
7.4 發布訂閱
第8章 傳輸控制優化
8.1 擁塞控制
8.2 弱網降級
8.3 抖動緩存與平滑發送
8.4 錯誤恢復
第9章 可擴展架構
9.1 應用概覽
9.2 流水線
9.3 服務端架構
9.4 網路設備
第10章 評價指標
10.1 總體指標
10.2 視頻質量評估
10.3 音頻質量評估
10.4 網路質量評估
10.5 性能與穩定性
附錄
附錄A 習題答案
附錄B COM編程基礎
附錄C 構建工具CMake
附錄D 調試技巧
附錄E 編程環境
附錄F JNI基礎
附錄G RTC術語
附錄H WTL簡介
附錄I 索引
推薦序/導讀/自序
為什麼寫這本書
即時通訊,簡稱RTC(Real-Time Communication),網際網路時代的我們,對其並不陌生。尤其是在後疫情時代,多種多樣的線上應用場景都促進了RTC的發展。
我們與親人們進行語音視訊交流、用會議系統進行線上辦公、透過線上課堂進行線上輔導、進語聊房同朋友玩遊戲,即時通訊系統越來越多地深入我們的工作與生活中。
雖然即時通訊系統是平時用得最多的系統,但市面上闡述這個系統的技術圖書卻是極少的,主要有以下原因:
(1)RTC 技術本身有一定的複雜性,包括了通訊工程、作業系統、多媒體技術、電腦網路、圖形學等基礎學科的交叉內容,很難透過單學科角度將其闡述透徹。
(2)RTC 技術的發展日新月異。長期以來,網路頻寬規模、桌面終端系統、即時通訊軟體都在持續迅猛發展,RTC 技術的標準日益革新。
(3)現在流行的開放原始碼RTC 系統,大都歷史悠久,且體量較大,不適合初學者入門上手。它們大多依賴很多第三方函式庫,讀者無法深入探究其底層原理。
現如今,5G 寬頻設施日益普及,行動終端與桌面系統的紛爭趨於平靜,WebRTC 的推出確立了RTC 的W3C 標準。我們可以從頭檢查RTC 系統,看看它的各個組成部分,以分析其必要性與實現方式。
由於RTC 涉及的知識概念較多,我們將分層次、分階段地介紹。本書作為基礎卷,將著重介紹RTC 相關的概念、格式、工具,以及基礎模組的程式設計。我將本書的內容比喻為MOBA 類遊戲中單一英雄的玩法介紹,只有掌握了這些基礎知識,熟悉了每個角色的定位,才能打出完美的配合,以及進一步深挖。
誰適合看這本書
本書的目標讀者包括以下幾類群眾:
• 電腦/ 通訊相關專業的在校大學生。
• 致力於從事RTC 程式設計開發的技術人員。
• 對RTC 技術感興趣,並希望在自己的專案中使用相關技術的程式設計師。
閱讀本書,需要讀者掌握以下基礎知識:
• 作業系統的程式設計基礎(如Windows、macOS 或行動端開發經驗)。
• C++ 語言程式設計技巧。
• 電腦網路基礎知識。
• 常用電腦命令與Python 指令稿的撰寫。
閱讀說明
本書著重介紹各種概念的二進位格式,我認為這是掌握電腦技術的不二法門。
初學者可以從第1 章開始依次閱讀每個章節,確保在已經掌握前一章知識的前提下,再閱讀後一章的內容。每個章節的內容也都是彼此獨立的,因此有基礎的讀者可以直接跳到感興趣的章節進行閱讀,或在需要理解某個概念時,透過目錄直接查閱。
這些程式已在以下環境中驗證通過:Windows 10 下的Visual Studio 2022 macOS 13、iOS 14/15 下的XCode 14、Android Studio 2021.3.1 Patch 1
練習題說明
本書每節後都附有練習題,供讀者動手實踐。練習題遵照以下格式:
序號.[解題時間](題目標題)題目內容
這裡的解題時間是根據題目難度大致估計的,因人而異。
(1)[5 分鐘](顏色取分量)小型程式題,只需寫幾行程式。
(2)[2 小時](獲取MP4 檔案的播放時長)中型程式題,需要寫複雜函式。
(3)[30 人月](架設區域網的RTC)適合小型團隊當作課程設計。
附錄A中附有部分習題的答案或提示。
致謝
感謝我的母親和愛人,在疫情居家期間照顧我的三餐,讓我能心無旁騖地寫作。
感謝字節跳動的主管和同事們,你們為本書的撰寫提供了大量素材。
感謝博文視點的編輯們,對本書進行了反覆審閱和校訂。
由於撰寫時間倉促,以及作者本人的水準、精力有限,書中內容難免存在疏漏,還請各位讀者多多指點、包涵。
歡迎大家發郵件與我交流:[email protected]。