预购商品
书目分类
特别推荐
全書內容分為三部分,共15章。第1~6章為第一部分,主要講解音視頻開發的基礎知識,簡要介紹音視頻技術的發展背景,以及主流的音視訊壓縮編碼演算法、音視頻容器格式和網路流媒體協定等。第7~9章為第二部分,主要講解命令列工具ffmpeg、ffprobe和ffplay的使用方法,包括如何使用這些工具進行視頻播放、格式檢測、編轉碼、格式轉換和流媒體推拉流等操作;第10~15章為第三部分,主要講解基於FFmpegSDK的開發實戰,主要介紹如何在工程中調用libavcodec和libavformat等庫提供的介面實現音視頻處理的相關功能。 本書適合從事音視頻編解碼、多媒體應用開發和流媒體技術的初、中級開發者,以及各大院校學生閱讀,也適合有一定經驗的開發人員參考使用。
第一部分基礎知識 第1章音視頻技術概述.2 1.1音視頻資訊與多媒體系統2 1.1.1資訊傳輸系統的發展.2 1.1.2資訊時代的音視頻技術.4 1.1.3音視頻技術的未來展望.5 1.2典型的音視頻與多媒體系統結構6 1.2.1視頻點播.7 1.2.2視頻直播.8 1.2.3安防監控.9 1.2.4視訊會議.9 第2章圖像、圖元與顏色空間.11 2.1圖像與圖元11 2.2圖像的位元深與顏色空間12 2.2.1圖像的位元深.12 2.2.2圖像的顏色空間.14 2.3圖像壓縮編碼15 2.3.1圖像壓縮演算法分類.16 2.3.2圖像壓縮基本演算法.16 2.3.3常見的圖像壓縮編碼格式.20 第3章視訊壓縮編碼22 3.1視訊壓縮編碼的基礎知識22 3.1.1視頻資訊的數位化表示.22 3.1.2常用的視頻格式與解析度.24 3.1.3對視頻資料壓縮編碼的原因24 3.2視訊壓縮編碼標準的發展歷程24 3.3視訊壓縮編碼的基本原理25 3.3.1視頻資料中的冗餘資訊.25 3.3.2預測編碼.26 3.3.3變換編碼.27 3.3.4熵編碼.28 3.4視頻編碼標準H.264.28 3.4.1H.264簡介28 3.4.2H.264的框架28 3.4.3H.264的基本演算法.30 3.5高效視頻編碼標準H.26533 3.5.1H.265簡介33 3.5.2H.265的框架33 3.5.3H.265的基本演算法.35 第4章音訊壓縮編碼42 4.1音訊壓縮編碼的基礎知識42 4.1.1聲音資訊的概念.42 4.1.2聲音資訊的基本要素.42 4.2音訊資訊採樣與數位化43 4.2.1模擬音訊.43 4.2.2數位音訊.44 4.2.3採樣和量化.44 4.3脈衝碼調制46 4.3.1PCM量化區間分割46 4.3.2PCM量化編碼規則49 4.4MP3格式與MP3編碼標準51 4.4.1MP3格式.52 4.4.2MP3編碼標準.62 4.5AAC格式與AAC編碼標準.67 4.5.1AAC格式67 4.5.2AAC編碼標準72 第5章音視頻檔容器和封裝格式.74 5.1概述74 5.2FLV格式75 5.2.1FLV檔結構.75 5.2.2FLV文件頭.76 5.2.3FLV標籤.77 5.3MPEG-TS格式84 5.3.1資訊包頭.84 5.3.2PES包結構.85 5.3.3PSI結構.87 5.4MP4格式.88 5.4.1MP4格式簡介.88 5.4.2ISO協議族89 5.4.3MP4封裝格式.89 5.4.4Box類型90 5.4.5MP4檔結構.92 5.4.6構建視頻流的播放時間軸.98 第6章音視頻流媒體協定.104 6.1網路通訊協定模型105 6.1.1ISO/OSI模型結構105 6.1.2TCP/IP模型結構106 6.2網路流媒體協定——RTMP120 6.2.1RTMP的概念120 6.2.2RTMP分塊與塊流121 6.2.3RTMP資訊格式126 6.2.4RTMP資訊與命令129 6.3網路流媒體協定——HLS協定136 6.3.1HLS協議的概念.136 6.3.2HLS直播流媒體系統結構.136 6.3.3HLS索引檔案格式.138 第二部分命令列工具 7章FFmpeg的基本操作144 7.1FFmpeg概述144 7.1.1各個編譯類型的區別.145 7.1.2編譯FFmpeg原始程式碼148 7.2ffplay的基本使用方法155 7.2.1顯示ffplay版本155 7.2.2顯示編譯選項.156 7.2.3設置日誌級別.156 7.2.4全屏播放.158 7.2.5指定輸入視頻的寬、高和幀率158 7.2.6禁用音訊流、視頻流和字幕流158 7.2.7指定播放的起始時間和時長159 7.2.8指定播放音量.159 7.2.9設置播放視窗.159 7.3ffprobe的基本使用方法159 7.3.1顯示詳細的封裝格式資訊.160 7.3.2顯示每一路媒體流資訊.161 7.3.3顯示每一個碼流包的資訊.164 7.3.4顯示媒體流和碼流包的負載資訊165 7.3.5顯示每一幀圖像的資訊.167 7.3.6指定檢測資訊的輸出格式.169 7.4ffmpeg的基本使用方法175 7.4.1顯示版本和編譯配置資訊.176 7.4.2顯示支援的解複用器格式.177 7.4.3顯示支援的複用器格式.179 7.4.4顯示支援的所有輸入格式和輸出格式181 7.4.5顯示支援的解碼器.183 7.4.6顯示支援的編碼器.184 7.4.7顯示支援的媒體協定.186 7.4.8顯示支援的硬體加速框架.188 7.4.9ffmpeg封裝格式轉換.188 7.4.10視頻的解碼和編碼.193 7.4.11從視頻中截取圖像206 7.4.12ffmpeg視頻轉碼.207 第8章濾鏡圖.209 8.1ffmpeg音視頻濾鏡209 8.1.1簡單濾鏡圖.209 8.1.2複合濾鏡圖.210 8.1.3ffmpeg支持的濾鏡列表.211 8.2簡單濾鏡圖的應用212 8.2.1常用的視頻編輯簡單濾鏡圖212 8.2.2常用的音訊編輯簡單濾鏡圖227 8.3複合濾鏡圖的應用230 8.3.1常用的視頻編輯複合濾鏡圖230 8.3.2常用的音訊編輯複合濾鏡圖234 第9章流媒體應用236 9.1構建SRS流媒體服務.236 9.1.1部署RTMP流媒體服務.238 9.1.2部署HLS流媒體服務240 9.1.3部署HTTP-FLV流媒體服務.241 9.2構建NginxRTMP流媒體服務.241 9.2.1Nginx的編譯和部署242 9.2.2Nginx的流媒體模組nginx-rtmp-module246 第三部分開發實戰 第10章FFmpegSDK的使用.254 10.1使用CMake構建工程.255 10.1.1使用CMake構建HelloWorld工程255 10.1.2在工程中編譯並輸出多個檔257 10.1.3在工程中添加標頭檔和原始檔案目錄259 10.1.4在工程中引入動態庫.262 10.2FFmpegSDK基本使用方法示例:獲取目錄下的檔資訊.264 10.2.1顯示指定目錄資訊.264 10.2.2解析API和結構體.266 第11章使用FFmpegSDK進行視頻編解碼269 11.1libavcodec視頻編碼269 11.1.1主函數與資料I/O實現269 11.1.2視訊轉碼器初始化272 11.1.3編碼循環體284 11.1.4關閉編碼器289 11.1.5FFmpeg視頻編碼延遲分析.290 11.2libavcodec視頻解碼294 11.2.1主函數實現294 11.2.2視頻解碼器初始化295 11.2.3解碼循環體297 11.2.4關閉解碼器304 第12章使用FFmpegSDK進行音訊編解碼306 12.1libavcodec音訊編碼306 12.1.1主函數實現.306 12.1.2音訊編碼器初始化.307 12.1.3編碼循環體.310 12.1.4關閉編碼器.313 12.2libavcodec音訊解碼315 12.2.1主函數實現.315 12.2.2音訊解碼器初始化.316 12.2.3解碼循環體.318 12.2.4關閉解碼器.324 第13章使用FFmpegSDK進行音視頻檔的解封裝與封裝.326 13.1音視頻檔的解封裝326 13.1.1主函數實現.326 13.1.2解複用器初始化.327 13.1.3迴圈讀取碼流包資料.335 13.1.4釋放解複用器和解碼器.338 13.1.5主函數的整體實現.339 13.2音訊流與視頻流檔的封裝340 13.2.1主函數實現.340 13.2.2音視頻流複用器的初始化341 13.2.3複用音訊流和視頻流.348 13.2.4釋放複用器實例.353 第14章使用FFmpegSDK添加視頻濾鏡和音訊濾鏡355 14.1視頻濾鏡355 14.1.1主函數實現.355 14.1.2視頻濾鏡初始化.356 14.1.3迴圈編輯視頻幀.365 14.1.4銷毀視頻濾鏡.368 14.2音訊濾鏡370 14.2.1主函數框架.370 14.2.2音訊濾鏡初始化.371 14.2.3迴圈編輯音訊幀.380 14.2.4銷毀音訊濾鏡.381 第15章使用FFmpegSDK進行視頻圖像轉換與音訊重採樣.383 15.1視頻圖像轉換383 15.1.1主函數實現.383 15.1.2視頻格式轉換初始化.384 15.1.3視頻的圖像幀迴圈轉換.388 15.1.4視頻格式轉換結構的銷毀和釋放390 15.2音訊重採樣391 15.2.1主函數實現.392 15.2.2音訊重採樣初始化.392 15.2.3對音訊幀迴圈重採樣.397 15.2.4音訊重採樣結構的銷毀和釋放400
殷汶傑 2013年畢業於上海大學資訊與通信工程學院,主要研究方向為視訊壓縮編碼、流媒體技術,其間發表了多篇高水準學術論文。具有多家一線互聯網上市公司、世界五百強企業與行業獨角獸公司的核心開發工作經驗,成功申請了多項專利(其中一項國際專利)。發表了數百篇技術博客,並發佈了多個線上教學課程,在行業內具有較強的技術影響力。
客服公告
热门活动
订阅电子报