發表於2024-12-25
書 名: 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章 實現一款 FFmpeg從入門到精通+音視頻開發進階指南:基於Android與iOS平颱的實踐 ffm 下載 mobi epub pdf txt 電子書 格式
FFmpeg從入門到精通+音視頻開發進階指南:基於Android與iOS平颱的實踐 ffm 下載 mobi pdf epub txt 電子書 格式 2024
FFmpeg從入門到精通+音視頻開發進階指南:基於Android與iOS平颱的實踐 ffm 下載 mobi epub pdf 電子書FFmpeg從入門到精通+音視頻開發進階指南:基於Android與iOS平颱的實踐 ffm mobi epub pdf txt 電子書 格式下載 2024