《音視頻開發進階指南:基於Android與iOS平台的實踐》是2017年機械工業出版社出版的圖書,作者是展曉凱、魏曉紅。
基本介紹
- 中文名:音視頻開發進階指南:基於Android與iOS平台的實踐
- 作者:展曉凱,魏曉紅
- 出版社: 機械工業出版社
- 出版時間:2017年12月1日
- 頁數:423 頁
- 開本:16 開
- ISBN:9787111585824
內容簡介,作者簡介,編輯推薦,圖書目錄,
內容簡介
書中首先通過介紹音視頻的物理現象與基礎概念,幫助讀者建立模擬信號到數位訊號轉化的過程,然後重點介紹了如何在移動端開發音視頻項目,其中包括開發中所需要了解的各種知識,如音視頻的解碼與渲染,採集與編碼,音視頻的處理與性能最佳化等;在此基礎上最后綜合當下*流行的直播場景,介紹如何將書中的已有項目改造、適配成為一個直播產品,進一步幫助讀者自由、有效的開發出功能豐富、性能一流的音視頻App。
作者簡介
展曉凱
曾工作於淘寶,參與設計開發淘寶旅行的機票搜尋業務,曾就職於115網盤參與核心功能的研發,現就職於北京*淘科技有限公司,任音視頻架構師,在公司的唱吧、唱吧直播間、火星三條產品線都負責客戶端核心的架構設計與開發工作,其中唱吧目前公布的數據已有幾億用戶,月活也在千萬量級。作者在工作與生活中非常樂於幫助同事與朋友,痴迷於網際網路可以推動整個人類歷史的發展,同時作為這個大時代的一個小人物,作者也希望幫助更多的人參與到網際網路行業中。
魏曉紅
多年以來一直從事Android套用的開發工作,在Android點播、直播相關領域有著豐富的經驗,由於開發的產品在印度有非常多的Android用戶,所以這讓其積累了豐富的Android端適配的經驗,作者在平時的工作與生活中樂於探討技術,希望互利網可以改變人類生活。
編輯推薦
適讀人群 :開發工程師, 你們只需要一點移動開發經驗就可以閱讀本書了;當然如果你已經是一個Senior的移動開發工程師或者架構師的話,那么你讀起來更會是遊刃有餘;再進一步,如果你已
作者團隊由來自國內一線移動網際網路公司的技術專家組成,不僅能確保內容的專業性,而且能把實際一線豐富的經驗帶給讀者,並在github上開源了書中的所有項目,讓讀者可以更容易的集成到自己的App中,對於移動端的音視頻開發者來講,這本書可以作為枕邊書。
圖書目錄
Contents?目 錄
推薦序一
推薦序二
前言
第1章 音視頻基礎概念 1
1.1 聲音的物理性質 1
1.1.1 聲音是波 1
1.1.2 聲波的三要素 2
1.1.3 聲音的傳播介質 3
1.1.4 回聲 3
1.1.5 共鳴 4
1.2 數字音頻 4
1.3 音頻編碼 6
1.4 圖像的物理現象 7
1.5 圖像的數值表示 8
1.5.1 RGB表示方式 8
1.5.2 YUV表示方式 9
1.5.3 YUV和RGB的轉化 10
1.6 視頻的編碼方式 10
1.6.1 視頻編碼 10
1.6.2 編碼概念 11
1.7 本章小結 13
第2章 移動端環境搭建 14
2.1 在iOS上如何搭建一個基礎項目 14
2.2 在Android上如何搭建一個基礎項目 21
2.3 交叉編譯的原理與實踐 26
2.3.1 交叉編譯的原理 26
2.3.2 iOS平台交叉編譯的實踐 27
2.3.3 Android平台交叉編譯的實踐 33
2.3.4 使用LAME編碼MP3檔案 38
2.4 本章小結 42
第3章 FFmpeg的介紹與使用 43
3.1 FFmpeg的編譯與命令行工具的使用 43
3.1.1 FFmpeg的編譯 43
3.1.2 FFmpeg命令行工具的使用 51
3.2 FFmpeg API的介紹與使用 60
3.3 FFmpeg源碼結構 68
3.3.1 libavformat與libavcodec介紹 68
3.3.2 FFmpeg通用API分析 69
3.3.3 調用FFmpeg解碼時用到的函式分析 70
3.3.4 調用FFmpeg編碼時用到的函式分析 71
3.3.5 面向對象的C語言設計 72
3.4 本章小結 74
第4章 移動平台下的音視頻渲染 75
4.1 AudioUnit介紹與實踐 75
4.2 Android平台的音頻渲染 84
4.2.1 AudioTrack的使用 85
4.2.2 OpenSL ES的使用 87
4.3 視頻渲染 90
4.3.1 OpenGL ES介紹 90
4.3.2 OpenGL ES的實踐 91
4.3.3 上下文環境搭建 98
4.3.4 OpenGL ES中的紋理 104
4.4 本章小結 109
第5章 實現一款視頻播放器 110
5.1 架構設計 110
5.2 解碼模組的實現 115
5.3 音頻播放模組的實現 118
5.3.1 Android平台的音頻渲染 118
5.3.2 iOS平台的音頻渲染 119
5.4 畫面播放模組的實現 121
5.4.1 Android平台的視頻渲染 121
5.4.2 iOS平台的視頻渲染 122
5.5 AVSync模組的實現 124
5.5.1 維護解碼執行緒 124
5.5.2 音視頻同步 125
5.6 中控系統串聯起各個模組 127
5.6.1 初始化階段 127
5.6.2 運行階段 128
5.6.3 銷毀階段 129
5.7 本章小結 130
第6章 音視頻的採集與編碼 131
6.1 音頻的採集 131
6.1.1 Android平台的音頻採集 131
6.1.2 iOS平台的音頻採集 134
6.2 視頻畫面的採集 137
6.2.1 Android平台的視頻畫面採集 137
6.2.2 iOS平台的視頻畫面採集 146
6.3 音頻的編碼 156
6.3.1 libfdk_aac編碼AAC 156
6.3.2 Android平台的硬體編碼器MediaCodec 158
6.3.3 iOS平台的硬體編碼器AudioToolbox 161
6.4 視頻畫面的編碼 166
6.4.1 libx264編碼H264 166
6.4.2 Android平台的硬體編碼器MediaCodec 172
6.4.3 iOS平台的硬體編碼器 175
6.5 本章小結 184
第7章 實現一款視頻錄製套用 185
7.1 視頻錄製的架構設計 185
7.2 音頻模組的實現 188
7.2.1 音頻佇列的實現 189
7.2.2 Android平台的實現 191
7.2.3 iOS平台的實現 194
7.3 音頻編碼模組的實現 198
7.3.1 改造編碼器 198
7.3.2 編碼器適配器 199
7.4 畫面採集與編碼模組的實現 202
7.4.1 視頻佇列的實現 202
7.4.2 Android平台畫面編碼後入隊 203
7.4.3 iOS平台畫面編碼後入隊 204
7.5 Mux模組 205
7.5.1 初始化 206
7.5.2 封裝和輸出 208
7.5.3 銷毀資源 212
7.6 中控系統串聯起各個模組 213
7.7 本章小結 214
第8章 音頻效果器的介紹與實踐 215
8.1 數字音頻基礎 215
8.1.1 波形圖 215
8.1.2 頻譜圖 217
8.1.3 語譜圖 219
8.1.4 深入理解時域與頻域 219
8.2 數字音頻處理:快速傅立葉變換 222
8.3 基本樂理知識 229
8.3.1 樂譜 229
8.3.2 音符的音高與十二平均律 231
8.3.3 音符的時值 233
8.3.4 節拍 233
8.3.5 MIDI格式 234
8.4 混音效果器 235
8.4.1 均衡效果器 236
8.4.2 壓縮效果器 239
8.4.3 混響效果器 240
8.5 效果器實現 243
8.5.1 Android平台實現效果器 243
8.5.2 iOS平台實現效果器 252
8.6 本章小結 255
第9章 視頻效果器的介紹與實踐 256
9.1 圖像處理的基本原理 256
9.1.1 亮度調節 257
9.1.2 對比度調節 258
9.1.3 飽和度調節 259
9.2 圖像處理進階 259
9.2.1 圖像的卷積過程 260
9.2.2 銳化效果器 260
9.2.3 高斯模糊算法 262
9.2.4 雙邊濾波算法 263
9.2.5 圖層混合介紹 264
9.3 使用FFmpeg內部的視頻濾鏡 266
9.3.1 FFmpeg視頻濾鏡介紹 266
9.3.2 濾鏡圖的構建 267
9.3.3 使用與銷毀濾鏡圖 269
9.3.4 常用濾鏡介紹 270
9.4 使用OpenGL ES實現視頻濾鏡 272
9.4.1 加水印 273
9.4.2 添