FFmpeg入門詳解——命令行與音視頻特效原理及應用( 簡體 字) | |
作者:梅會東 | 類別:1. -> 教材 -> 數位影像處理 |
出版社:清華大學出版社 | 3dWoo書號: 56277 詢問書籍請說出此書號! 有庫存 NT售價: 445 元 |
出版日:6/1/2023 | |
頁數:368 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787302617778 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
第1章FFmpeg入門簡介
1.1FFmpeg簡介 1.1.1FFmpeg官網介紹 1.1.2FFmpeg恥辱柱 1.1.3Libav政變 1.1.4開源許可協議簡介 1.2FFmpeg安裝 1.2.1在Windows上安裝FFmpeg 1.2.2在Linux上安裝FFmpeg 1.2.3在macOS上安裝FFmpeg 1.3FFmpeg項目組成 1.3.1工具 1.3.2SDK 1.3.3源碼 1.4FFmpeg常用功能 1.5FFmpeg框架與處理流程 1.5.1FFmpeg的處理流程 1.5.2FFmpeg的關鍵結構體 第2章FFmpeg命令行初體驗 2.1FFmpeg命令行簡介 2.2音視頻格式轉換 2.3視頻縮略圖 2.4圖片拼接成視頻 2.5ffplay視頻播放 2.6ffprobe獲取視頻信息 2.7Y4M視頻文件格式 2.7.1Y4M格式簡介 2.7.2Y4M格式規范 2.8PAL與NTSC 2.8.1制式 2.8.2PAL制式 2.8.3NTSC制式 第3章FFmpeg三大常用工具及應用選項詳解 3.1ffmpeg工具簡介 3.2ffplay工具簡介 3.2.1ffplay常用參數 3.2.2ffplay高級參數 3.2.3ffplay的數據可視化分析應用 3.2.4VLC作為RTSP流媒體服務器 3.3ffprobe工具簡介 3.3.1show_packets 3.3.2show_format 3.3.3show_frames 3.3.4show_streams 3.3.5print_format 3.3.6select_streams 3.4通用選項 3.5視頻選項 3.6音頻選項 3.7字幕選項 3.8高級選項 3.9map詳解 3.10ffmpegh詳解 3.11FFmpeg其他選項 3.11.1formats:支持的文件格式 3.11.2muxers:支持的封裝器格式 3.11.3demuxers:支持的解封裝器格式 3.11.4devices:支持的設備 3.11.5encoders:支持的編碼器格式 3.11.6decoders:支持的解碼器格式 3.11.7protocols:支持的協議格式 3.11.8hwaccels:支持的硬件加速格式 3.11.9layouts:支持的聲道模式 3.11.10sample_fmts:支持的采樣格式 3.11.11colors:支持的顏色名稱 3.11.12pix_fmts:支持的像素格式 第4章FFmpeg命令行實現音視頻轉封裝 4.1視頻容器及封裝與解封裝簡介 4.2音視頻流的分離與合成 4.2.1從MP4文件中提取音頻流和視頻流 4.2.2h264_mp4toannexb 4.2.3根據音頻流和視頻流合成MP4文件 4.2.4將多個MP4文件合并成一個MP4文件 4.3封裝格式之間的互轉 4.3.1MP4轉換為FLV 4.3.2MP4轉換為AVI 4.3.3其他格式轉換 4.3.4AVI/FLV/TS格式簡介 4.4MP4格式的faststart快速播放模式 4.4.1MP4格式簡介 4.4.2faststart參數介紹 第5章FFmpeg命令行實現音視頻轉碼 5.1音視頻編解碼及轉碼簡介 5.1.1視頻編解碼簡介 5.1.2音頻編解碼簡介 5.1.3音視頻轉碼簡介 5.2提取音視頻的YUV/PCM 5.2.1利用FFmpeg提取視頻的YUV像素數據 5.2.2YUV444/YUV422/YUV420 5.2.3利用FFmpeg提取視頻的RGB像素數據 5.2.4RGB16/RGB24/RGB32 5.2.5利用FFmpeg提取音頻的PCM 5.2.6PCM數據與WAV格式 5.3音頻編解碼簡介及命令行案例 5.3.1PCM編碼為AAC 5.3.2AAC轉碼為MP3 5.3.3AAC轉碼為AC3 5.4視頻編解碼簡介及命令行案例 5.4.1YUV編碼為H.264 5.4.2MP4格式轉碼為FLV格式 5.4.3MP4格式轉碼為AVI格式 5.4.4MP4格式轉碼為TS格式 5.4.5其他格式之間互轉 5.5控制音頻的聲道數、采樣率及采樣格式 5.5.1單聲道與立體聲互轉 5.5.2采樣率轉換 5.5.3采樣格式轉換及音頻重采樣 5.6控制視頻的幀率、碼率及分辨率 5.6.1控制視頻的幀率 5.6.2控制視頻的碼率及分辨率 5.6.3控制視頻的GOP 5.6.4視頻GOP簡介 5.7libx264的常用編碼選項及應用案例 5.7.1FFmpeg中libx264的選項 5.7.2x264.exe中的選項名與選項值 5.8libx265的常用編碼選項及應用案例 5.9FFmpeg的GPU硬件加速原理及應用案例 第6章FFmpeg命令行實現圖片水印及文字跑馬燈 6.1FFmpeg的濾鏡技術 6.2圖片水印及位置控制 6.2.1vf的movie濾鏡 6.2.2vf的movie中的絕對路徑 6.2.3vf的delogo去掉水印 6.3文字水印及位置控制 6.3.1vf的drawtext添加固定文字水印 6.3.2vf的drawtext控制文字顏色及大小 6.3.3查看drawtext的參數 6.3.4drawtext的文字內容來源 6.3.5drawtext的主要參數 6.3.6vf的drawtext添加系統時間水印 6.4文字跑馬燈案例實戰 6.5FFmpeg的overlay技術簡介 6.5.1overlay技術簡介 6.5.2filter_complexoverlay添加水印 6.6控制文字的大小和顏色并解決中文亂碼問題 6.6.1vf的drawtext添加中文水印 6.6.2vf的drawtext解決中文亂碼問題 6.6.3vf的drawtext中使用絕對路徑 第7章FFmpeg命令行實現音視頻特效及復雜濾鏡應用 7.1復雜濾鏡filter_complex簡介 7.1.1簡單濾鏡和復雜濾鏡案例入門 7.1.2濾鏡圖、濾鏡鏈、濾鏡的關系 7.1.3簡單濾鏡和復雜濾鏡的區別 7.1.4流和濾鏡的結合使用 7.2視頻縮放及scale參數詳解 7.2.1使用scale實現縮放 7.2.2使用scale保持寬高比縮放 7.2.3使用FFmpeg的內置變量進行縮放 7.2.4使用min或max函數進行縮放 7.2.5使用force_original_aspect_ratio進行縮放 7.2.6使用pad選項填充黑邊 7.2.7使用scale的指定算法進行縮放 7.2.8scale參數說明 7.3音視頻倍速 7.3.1視頻倍速 7.3.2音頻倍速 7.3.3音視頻同時倍速 7.3.4使用ffplay倍速播放 7.4視頻裁剪及crop參數詳解 7.4.1使用crop實現裁剪 7.4.2crop參數說明 7.4.3復雜濾鏡nullsrc、crop、overlay結合使用 7.4.4nullsrc參數說明 7.4.5使用nullsrc生成一段空屏視頻 7.4.6使用color濾鏡生成黑色背景的視頻 7.5視頻倒放 7.6視頻翻轉與旋轉 7.7視頻填充pad濾鏡 7.8視頻倒影及鏡面水面特效 7.9畫中畫 7.9.1畫中畫技術簡介 7.9.2使用overlay實現畫中畫 7.9.3使用overlay與scale的結合實現畫中畫 7.9.4畫中畫的靈活位置 7.10九宮格 7.10.1九宮格簡介 7.10.2使用FFmpeg實現“四宮格” 7.10.3實現“四宮格”的任意順序 7.10.4使用FFmpeg實現“九宮格” 7.10.5實現的視頻“四宮格” 7.11淡入淡出效果 7.11.1fade濾鏡的參數說明 7.11.2fade濾鏡的用法 7.11.3fade濾鏡的案例 7.12黑白效果 7.13模糊處理 7.14視頻顫抖 7.15浮雕效果 7.15.1geq濾鏡參數簡介 7.15.2geq濾鏡的官網介紹 7.16靜音音頻和黑幕視頻 7.16.1生成靜音音頻 7.16.2生成純色視頻 7.17軟字幕和硬字幕 7.17.1字幕簡介 7.17.2字幕處理 第8章FFmpeg命令行實現流媒體功能及直播應用 8.1RTSP簡介及直播流 8.1.1RTSP簡介 8.1.2VLC作為RTSP流媒體服務器 8.1.3FFmpeg實現RTSP直播拉流 8.1.4RTSP交互流程分析 8.1.5VLC使用攝像頭模擬RTSP直播流 8.2RTP簡介及直播流 8.2.1RTP簡介 8.2.2VLC作為RTP流媒體服務器 8.2.3FFmpeg實現RTP直播拉流 8.3HTTP簡介及直播流 8.3.1HTTP簡介 8.3.2HTTP流媒體 8.3.3VLC作為HTTP流媒體服務器 8.3.4FFmpeg實現HTTP直播拉流 8.4UDP簡介及直播流 8.4.1UDP簡介 8.4.2VLC作為UDP流媒體服務器 8.4.3FFmpeg實現UDP直播拉流 8.5流媒體服務器的搭建 8.6RTMP直播推流與拉流 8.6.1RTMP簡介 8.6.2直播推流與拉流 8.6.3使用FFmpeg實現RTMP直播推流 8.6.4使用ffplay播放RTMP直播流 8.7HLS與M3U8直播功能 8.7.1NginxHTTPFLV生成HLS切片 8.7.2M3U8簡介 8.7.3使用ffplay播放HLS直播流 第9章FFmpeg命令行實現音視頻設備采集 9.1FFmpeg枚舉設備 9.2FFmpeg采集本地話筒與攝像頭數據 9.3FFmpeg采集網絡攝像頭獲取的數據并錄制 9.4FFmpeg采集攝像頭與話筒獲取的數據并直播 9.5Linux系統中FFmpeg采集攝像頭獲取的數據 9.5.1VMware中的Ubuntu連接USB攝像頭 9.5.2FFmpeg采集USB攝像頭獲取的數據 9.6FFmpeg錄制計算機屏幕 9.6.1Windows系統中FFmpeg錄屏 9.6.2Linux系統中FFmpeg錄屏 第10章FFmpeg命令行在Linux系統中的應用 10.1使用FFmpeg實現音視頻轉碼 10.2使用ffplay和ffprobe 10.3使用FFmpeg實現文字水印及跑馬燈 10.4使用FFmpeg實現音視頻特效 10.5使用FFmpeg實現流媒體及直播功能 第11章體驗FFmpeg5.0 11.1安裝FFmpeg5.0 11.1.1FFmpeg5.0的官網簡介 11.1.2FFmpeg5.0的安裝 11.2使用FFmpeg5.0實現音視頻轉碼 11.3使用FFmpeg5.0實現文字跑馬燈 11.4使用FFmpeg5.0實現音視頻特效 11.5使用FFmpeg5.0實現流媒體及直播功能 第12章各種開發語言調用FFmpeg命令行 12.1C++調用FFmpeg命令行 12.1.1C++調用FFmpeg命令行的跨平臺通用代碼 12.1.2VisualStudio調用FFmpeg命令行 12.1.3Qt調用FFmpeg命令行 12.1.4MinGW調用FFmpeg命令行 12.1.5Linux系統下C++調用FFmpeg命令行 12.1.6popen與pclose 12.2Java調用FFmpeg命令行 12.3Python調用FFmpeg命令行 本書系統講解了FFmpeg命令行及音視頻特效的基礎理論及應用,包括詳細的FFmpeg命令行參數選項,包括音視頻轉封裝、轉碼、水印、字幕等,包括各種音視頻特效(倍速、倒放、旋轉、模糊、畫中畫、九宮格、浮雕和字幕效果等),包括流媒體方方面面(RTSP、RTMP、HLS)等直播功能,包括音視頻采集,以及各種開發語言(C++、Java、Python)調用FFmepg命令行等。本書為FFmpeg音視頻流媒體系列的第三部。
全書共分為12章:系統講解了FFmpeg命令行的基礎知識、轉封裝與轉碼、圖片水印與文字跑馬燈、各種音視頻特效、流媒體直播功能、音視頻采集功能,以及各種開發語言調用FFmepg命令行等。 書中包含大量的示例,圖文并茂,爭取讓一個音視頻流媒體領域的讀者真正入門,從此開啟流媒體直播編程的大門。本書知識體系比較完整,側重FFmpeg命令行及音視頻特效的原理講解及應用。建議讀者先學習FFmpeg音視頻流媒體系列的第一本《FFmpeg入門詳解——音視頻原理及應用》和第二本《FFmpeg入門詳解——流媒體直播原理及應用》,然后來學習本書。本書的講解過程由淺入深,讓讀者在不知不覺中學會了FFmpeg命令行的基礎知識,并能動手實現各種轉碼功能、音視頻特效處理、并能實現流媒體直播功能。 本書可作為FFmpeg命令行應用及音視頻特效處理方向的入門書籍,也可作為高年級本科生和研究生的學習參考書籍。 近年來,隨著5G網絡技術的迅猛發展,FFmpeg音視頻及流媒體直播應用越來越普及,音視頻流媒體方面的開發崗位也非常多,然而,市面上還沒有一本通俗易懂的系統完整的FFmpeg命令行應用及音視頻特效處理方向的入門書。網絡上的知識雖然不少,但是太散亂,不適合讀者入門。
眾所周知,FFmpeg命令行應用起來簡單,但很難理解。很多程序員想從事音視頻或流媒體開發,但始終糊里糊涂、不得入門。筆者剛畢業時,也是一名純讀者,為了學習這方面知識付出了很多努力,終于有一些收獲。借此機會,整理成書,希望對讀者有所幫助,少走彎路。 FFmpeg發展迅猛,功能強大,命令行也很簡單、很實用,但是有一個現象: 有時即便使用命令行做出了一些特效,但依然不理解原理,不知道具體的參數是什么含義。音視頻與流媒體是一門很復雜的技術,涉及的概念、原理、理論非常多,很多初學者不學基礎理論,而是直接做項目、看源碼,但往往在看到C/C++的代碼時一頭霧水,不知道代碼到底是什么意思。這是因為沒有學習音視頻和流媒體的基礎理論,就比如學習英語,不學習基本單詞,而是天天聽英語新聞,總也聽不懂,所以一定要認真學習基礎理論,然后學習播放器、轉碼器、非編、流媒體直播、視頻監控等。 本書主要內容 第1章介紹FFmpeg入門知識。 第2章介紹FFmpeg命令行初體驗的幾個小案例。 第3章介紹FFmpeg三大常用工具及應用選項的詳解。 第4章介紹FFmpeg命令行實現音視頻轉封裝的知識。 第5章介紹FFmpeg命令行實現音視頻轉碼的案例及相關基礎理論。 第6章介紹FFmpeg命令行實現圖片水印及文字跑馬燈等效果。 第7章介紹FFmpeg命令行實現音視頻特效及復雜濾鏡的應用。 第8章介紹FFmpeg命令行實現流媒體功能及直播應用功能。 第9章介紹FFmpeg命令行實現音視頻設備采集的功能。 第10章介紹FFmpeg命令行在Linux系統中的應用及幾個典型案例。 第11章介紹最新版FFmpeg 5.0的應用及案例實戰。 第12章介紹各種開發語言調用FFmpeg命令行。 閱讀建議 本書是一本適合讀者入門的FFmpeg命令行應用及音視頻特效處理的讀物,既有通俗易懂的基本概念,又有豐富的案例和原理分析,圖文并茂,知識體系非常完善。對音視頻、流媒體和直播的基本概念和原理進行復習,對重要的概念進行了具體的闡述,然后結合FFmpeg命令行進行案例實戰,既能學到實踐操作知識,也能理解底層理論,非常適合初學者。 本書總共12章。 第1~3章介紹FFmpeg命令行的基礎知識,包括參數選項詳細講解,以及命令行初體驗等。 第4~12章介紹FFmpeg命令行實現轉封裝、轉碼、圖片水印、文字跑馬燈、各種音視頻特效(倍速、倒放、旋轉、模糊、畫中畫、九宮格、浮雕和字幕效果等)、直播功能、音視頻采集功能等,以及各種開發語言調用FFmpeg命令行的知識。 建議讀者在學習過程中,循序漸進,不要跳躍。 本書的知識體系是筆者精心準備的,由淺入深,層層深入,對于抽象復雜的概念和原理,筆者盡量通過圖文并茂的方式進行講解,非常適合初學者。從最基礎的FFmpeg命令行入門案例開始,理論與實踐并重,讀者一定要動手實踐,親自試驗各個命令行,并理解原理和流程。講解詳細的FFmpeg參數選項,然后應用FFmpeg命令行進行各種轉碼、特效、直播、采集等處理。建議讀者一定要將本系列的第一本《FFmpeg入門詳解——音視頻原理及應用》和第二本《FFmpeg入門詳解——流媒體直播原理及應用》所學的音視頻基礎知識和流媒體直播基礎知識應用到本書中,理論指導實踐,加深對每個知識點的理解。不但要學會如何用FFmpeg命令行來完成各種復雜的音視頻特效功能,還要能理解底層原理及相關的理論基礎。最后進行分析總結,爭取使所學的理論進行升華,做到融會貫通。 致謝 首先感謝清華大學出版社趙佳霓編輯給筆者提出了許多寶貴的建議,推動了本書的出版。 感謝我的家人和親朋好友,祝大家快樂健康!特別感謝我的寶貝女兒和妻子,大寶貝女兒開始對知識有點興趣了,非常欣慰。 感謝我的學員,群里的學員越來越多,并經常提出很多寶貴意見。隨著培訓時間和經驗的增長,對知識點的理解也越來越透徹,希望給大家多帶來一些光明,盡量讓大家少走彎路。群里的部分老學員通過學到的FFmpeg音視頻流媒體知識已經獲得了高薪,這一點讓我感到非常興奮。將知識分享出去,是1變N的成效,看著大家成長起來,心里有一股股暖流。學習是一個過程,沒有終點,唯有堅持,大家一起加油,為美好的明天而奮斗。 由于時間倉促,書中難免存在不妥之處,請讀者見諒,并提寶貴意見。 梅會東2023年3月于北京清華園 資料包 全書概覽 |