書 名: ffmpeg從入門到精通+音視頻開發進階指南:基於android與ios平颱的實踐
圖書定價: 148元
作 者: 展曉凱 魏曉紅 劉歧 趙文傑
齣 版 社: 機械工業齣版社
齣版日期: 2018-03-01
ISBN 號: 9787111592204+ 9787111585824
開 本: 32開
頁 數: 0
版 次: 1-1
音視頻開發進階指南:基於Android與iOS平颱的實踐
展曉凱,曾工作於淘寶,參與設計開發淘寶旅行的機票搜索業務,曾就職於115網盤參與核心功能的研發,現就職於北京淘科技有限公司公司,任音視頻架構師,在公司的唱吧、唱吧直播間、火星三條産品綫都負責客戶端核心的架構設計與開發工作,其中唱吧目前公布的數據已有幾億用戶,月活也在韆萬量級,熱衷於為可以幫助到的人做齣一份自己的力量。
FFmpeg從入門到精通
本書是一本介紹FFmpeg的實戰技術指南,全書共10章,分為兩個部分,主要講解如何使用FFmpeg進行開發。部分(第1~7章)為FFmpeg的命令行使用篇,介紹瞭FFmpeg的基礎組成部分、FFmpeg工具使用、FFmpeg的封裝操作、FFmpeg的轉碼操作、FFmpeg的流媒體操作、FFmpeg的濾鏡操作、FFmpeg的設備操作。第二部分(第8~10章)為FFmpeg的API使用篇,介紹瞭FFmpeg封裝部分的API使用操作、FFmpeg編解碼部分的API使用操作,FFmpeg濾鏡部分的API使用操作,相關操作均以實例方式進行說明,包括新API及舊API的操作。
音視頻開發進階指南:基於Android與iOS平颱的實踐
本書采用從零開始,逐級深入的方式寫作,以項目實戰為階段性目標,外加實際生産環境下的特殊案例作為優化方案,讓讀者可以全方位掌握移動平颱下音視頻開發的大部分內容。首先介紹實現視頻播放器和錄製需要的基礎知識,然後通過案例講解如何實現視頻播放器和一個視頻錄製的應用。但是一款錄製的應用,要想上綫,其實還要進行給音頻視頻美化,所以在提高篇,介紹瞭相應的內容,並給齣瞭一個實際生産環境中的案例,之後,指導讀者進階,把前麵學到的基礎內容應用到直播中。後,給齣排錯方法和工具,和大傢分享如何更有效率地開發應用程序。
FFmpeg從入門到精通
本書贊譽
推薦序一
推薦序二
推薦序三
前言
部分 FFmpeg的命令行使用篇
第1章 FFmpeg簡介 2
1.1 FFmpeg的定義 2
1.2 FFmpeg的曆史 2
1.3 FFmpeg的基本組成 3
1.4 FFmpeg的編解碼工具ffmpeg 6
1.5 FFmpeg的播放器ffplay 9
1.6 FFmpeg的多媒體分析器ffprobe 9
1.7 FFmpeg編譯 11
1.7.1 FFmpeg之Windows平颱編譯 11
1.7.2 FFmpeg之Linux平颱編譯 13
1.7.3 FFmpeg之OS X平颱編譯 15
1.8 FFmpeg編碼支持與定製 16
1.8.1 FFmpeg的編碼器支持 24
1.8.2 FFmpeg的解碼器支持 25
1.8.3 FFmpeg的封裝支持 27
1.8.4 FFmpeg的解封裝支持 28
1.8.5 FFmpeg的通信協議支持 29
1.9 小結 29
第2章 FFmpeg工具使用基礎 30
2.1 ffmpeg常用命令 30
2.1.1 ffmpeg的封裝轉換 37
2.1.2 ffmpeg的轉碼參數 38
2.1.3 ffmpeg的基本轉碼原理 38
2.2 ffprobe常用命令 40
2.3 ffplay常用命令 50
2.3.1 ffplay常用參數 50
2.3.2 ffplay高級參數 53
2.3.3 ffplay的數據可視化分析應用 57
2.4 小結 59
第3章 FFmpeg 轉封裝 60
3.1 音視頻文件轉MP4格式 60
3.1.1 MP4格式標準介紹 61
3.1.2 MP4分析工具 76
3.1.3 MP4在FFmpeg中的Demuxer 79
3.1.4 MP4在FFmpeg中的Muxer 80
3.2 視頻文件轉FLV 84
3.2.1 FLV格式標準介紹 84
3.2.2 FFmpeg轉FLV參數 89
3.2.3 FFmpeg文件轉FLV舉例 89
3.2.4 FFmpeg生成帶關鍵索引的FLV 91
3.2.5 FLV文件格式分析工具 91
3.3 視頻文件轉M3U8 93
3.3.1 M3U8格式標準介紹 93
3.3.2 FFmpeg轉HLS參數 95
3.3.3 FFmpeg轉HLS舉例 96
3.4 視頻文件切片 105
3.4.1 FFmpeg切片segment參數 105
3.4.2 FFmpeg切片segment舉例 106
3.4.3 FFmpeg使用ss與t參數進行切片 110
3.5 音視頻文件音視頻流抽取 111
3.5.1 FFmpeg抽取音視頻文件中的AAC音頻流 111
3.5.2 FFmpeg抽取音視頻文件中的H.264視頻流 112
3.5.3 FFmpeg抽取音視頻文件中的H.265數據 113
3.6 係統資源使用情況 114
3.7 小結 115
第4章 FFmpeg轉碼 116
4.1 FFmpeg軟編碼H.264與H.265 116
4.1.1 x264編碼參數簡介 117
4.1.2 H.264編碼舉例 118
4.2 FFmpeg硬編解碼 130
4.2.1 Nvidia GPU硬編解碼 130
4.2.2 Intel QSV硬編碼 133
4.2.3 樹莓派硬編碼 137
4.2.4 OS X係統硬編解碼 139
4.3 FFmpeg輸齣MP3 141
4.3.1 MP3編碼參數介紹 141
4.3.2 MP3的編碼質量設置 142
4.3.3 平均碼率編碼參數ABR 144
4.4 FFmpeg輸齣AAC 145
4.4.1 FFmpeg中的AAC編碼器使用 145
4.4.2 FDK AAC第三方的AAC編解碼Codec庫 146
4.4.3 高質量AAC設置 148
4.4.4 AAC音頻質量對比 149
4.5 係統資源使用情況 149
4.6 小結 150
第5章 FFmpeg流媒體 151
5.1 FFmpeg發布與錄製RTMP流 151
5.1.1 RTMP參數說明 152
5.1.2 RTMP參數舉例 152
5.2 FFmpeg錄製RTSP流 159
5.2.1 RTSP參數說明 159
5.2.2 RTSP參數使用舉例 159
5.3 FFmpeg錄製流 163
5.3.1 參數說明 163
5.3.2 參數使用舉例 163
5.3.3 拉流錄製 166
5.3.4 拉取中的流錄製FLV 166
5.4 FFmpeg錄製和發布UDP / TCP流 166
5.4.1 TCP與UDP參數說明 166
5.4.2 TCP參數使用舉例 167
5.4.3 TCP/UDP使用小結 172
5.5 FFmpeg推多路流 173
5.5.1 管道方式輸齣多路流 173
5.5.2 tee封裝格式輸齣多路流 174
5.5.3 tee協議輸齣多路流 175
5.6 FFmpeg生成HDS流 176
5.6.1 HDS參數說明 177
5.6.2 HDS使用舉例 177
5.7 FFmpeg生成DASH流 179
5.7.1 DASH參數說明 180
5.7.2 DASH參數使用舉例 180
5.8 小結 181
第6章 FFmpeg濾鏡使用 182
6.1 FFmpeg濾鏡Filter描述格式 182
6.1.1 FFmpeg濾鏡Filter的參數排列方式 182
6.1.2 FFmpeg濾鏡Filter時間內置變量 183
6.2 FFmpeg為視頻加水印 183
6.2.1 文字水印 183
6.2.2 圖片水印 187
6.3 FFmpeg生成畫中畫 189
6.4 FFmpeg視頻多宮格處理 192
6.5 FFmpeg音頻流濾鏡操作 193
6.5.1 雙聲道閤並單聲道 193
6.5.2 雙聲道提取 194
6.5.3 雙聲道轉雙音頻流 195
6.5.4 單聲道轉雙聲道 196
6.5.5 兩個音頻源閤並雙聲道 197
6.5.6 多個音頻閤並為多聲道 198
6.6 FFmpeg音頻音量探測 199
6.6.1 音頻音量獲得 199
6.6.2 繪製音頻波形 200
6.7 FFmpeg為視頻加字幕 201
6.7.1 ASS字幕流寫入視頻流 201
6.7.2 ASS字幕流寫入封裝容器 202
6.8 FFmpeg視頻摳圖閤並 205
6.9 FFmpeg 3D視頻處理 206
6.9.1 stereo3d處理3D視頻 206
6.9.2 3D圖像轉換舉例 207
6.10 FFmpeg定時視頻截圖 208
6.10.1 vframe參數截取一張圖片 208
6.10.2 fps濾鏡定時獲得圖片 209
6.11 FFmpeg生成測試元數據 210
6.11.1 FFmpeg生成音頻測試流 210
6.11.2 FFmpeg生成視頻測試流 211
6.12 FFmpeg對音視頻倍速處理 212
6.12.1 atempo音頻倍速處理 212
6.12.2 setpts視頻倍速處理 213
6.13 小結 215
第7章 FFmpeg采集設備 216
7.1 FFmpeg中Linux設備操作 216
7.1.1 Linux下查看設備列錶 216
7.1.2 Linux采集設備fbdev參數說明 217
7.1.3 Linux采集設備fbdev使用舉例 217
7.1.4 Linux采集設備v4l2參數說明 218
7.1.5 Linux采集設備v4l2使用舉例 218
7.1.6 Linux采集設備x11grab參數說明 220
7.1.7 Linux采集設備x11grab使用舉例 220
7.2 FFmpeg中OS X設備操作 222
7.2.1 OS X下查看設備列錶 223
7.2.2 OS X下設備采集舉例 223
7.3 FFmpeg中Windows設備操作 227
7.3.1 FFmpeg使用dshow采集音視頻設備 227
7.3.2 FFmpeg使用vfwcap采集視頻設備 228
7.3.3 FFmpeg使用gdigrab采集窗口 229
7.4 小結 230
第二部分 FFmpeg的API使用篇
第8章 FFmpeg接口libavformat的使用 232
8.1 音視頻流封裝 232
8.2 音視頻文件解封裝 235
8.3 音視頻文件轉封裝 237
8.4 視頻截取 240
8.5 avio內存數據操作 242
8.6 小結 244
第9章 FFmpeg接口libavcodec的使用 245
9.1 FFmpeg舊接口的使用 245
9.1.1 FFmpeg舊接口視頻解碼 245
9.1.2 FFmpeg舊接口視頻編碼 248
9.1.3 FFmpeg舊接口音頻解碼 251
9.1.4 FFmpeg舊接口音頻編碼 252
9.2 FFmpeg新接口的使用 254
9.2.1 FFmpeg新接口音頻編碼 255
9.2.2 FFmpeg新接口音頻解碼 257
9.2.3 FFmpeg新接口視頻編碼 260
9.2.4 FFmpeg新接口視頻解碼 260
9.3 小結 261
第10章 FFmpeg接口libavfilter的使用 262
10.1 filtergraph和filter簡述 262
10.2 FFmpeg中預留的濾鏡 263
10.2.1 音頻濾鏡 263
10.2.2 視頻濾鏡 265
10.3 avfilter流程圖 271
10.4 使用濾鏡加LOGO操作 272
10.5 小結 275
音視頻開發進階指南:基於Android與iOS平颱的實踐
推薦序一
推薦序二
前言
第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 添加自定義文字 278
9.4.3 美顔效果器 282
9.4.4 動圖貼紙效果器 284
9.4.5 主題效果器 288
9.5 本章小結 291
第10章 專業的視頻錄製應用實踐 292
10.1 視頻硬件解碼器的使用 292
10.1.1 初始化信息準備 292
10.1.2 VideoToolbox解碼H264 294
10.1.3 MediaCodec解碼H264 298
10.2 音頻效果器的集成 304
10.2.1 Android音效處理係統的實現 305
10.2.2 iOS音效處理係統的實現 308
10.3 一套跨平颱的視頻效果器的設計與實現 309
10.4 將特效處理庫集成到視頻錄製項目中 315
10.4.1 Android平颱特效集成 316
10.4.2 iOS平颱特效集成 321
10.5 本章小結 325
第11章 直播應用的構建 327
11.1 直播場景分析 327
11.2 拉流播放器的構建 329
11.2.1 Android平颱播放器增加後處理過程 329
11.2.2 iOS平颱播放器增加後處理過程 332
11.3 推流器的構建 335
11.4 第三方雲服務介紹 340
11.5 禮物係統的實現 341
11.5.1 Cocos2dX項目的運行原理 342
11.5.2 關鍵API詳解 344
11.5.3 實現一款動畫 348
11.6 聊天係統的實現 350
11.6.1 Android客戶端的WebSocket實現 351
11.6.2 iOS客戶端的WebSocket實現 352
11.7 本章小結 353
第12章 直播應用中的關鍵處理 354
12.1 直播應用的細節分析 354
12.1.1 推流端細節分析 354
12.1.2 拉流端細節分析 355
12.2 推流端的關鍵處理 355
12.2.1 自適應碼率的實踐 356
12.2.2 統計數據保證後續的應對策略 361
12.3 拉流端的關鍵處理 363
12.3.1 重試機製的實踐 364
12.3.2 首屏時間的保證 366
12.3.3 統計數據保證後續的應對策略 370
12.4 本章小結 371
第13章 工欲善其事,必先利其器 372
13.1 Android平颱工具詳解 372
13.1.1 ADB工具的熟練使用 372
13.1.2 MAT工具檢測Java端的內存泄漏 377
13.1.3 NDK工具詳解 387
13.1.4 Native層的內存泄漏檢測 389
13.1.5 breakpad收集綫上Crash 396
13.2 iOS使用Instruments診斷應用 399
13.2.1 Debug Navigator 399
13.2.2 Time Profiler 400
13.2.3 Allocations 402
13.2.4 Leaks 403
13.3 本章小結 405
附錄A 通過Ne10的交叉編譯輸入理解ndk-build 406
附錄B 編碼器的使用細節 415
附錄C 視頻的錶示與編碼 423
評分
評分
評分
評分
評分
評分
評分
評分
本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 book.qciss.net All Rights Reserved. 圖書大百科 版權所有