FFmpeg 入門詳解 — 命令行與音視頻特效原理及應用

梅會東

  • 出版商: 清華大學
  • 出版日期: 2023-06-01
  • 售價: $534
  • 貴賓價: 9.5$507
  • 語言: 簡體中文
  • 頁數: 367
  • 裝訂: 平裝
  • ISBN: 7302617775
  • ISBN-13: 9787302617778
  • 相關分類: Python程式語言
  • 立即出貨

  • FFmpeg 入門詳解 — 命令行與音視頻特效原理及應用-preview-1
  • FFmpeg 入門詳解 — 命令行與音視頻特效原理及應用-preview-2
  • FFmpeg 入門詳解 — 命令行與音視頻特效原理及應用-preview-3
FFmpeg 入門詳解 — 命令行與音視頻特效原理及應用-preview-1

買這商品的人也買了...

商品描述

本書系統講解了FFmpeg命令行及音視頻特效的基礎理論及應用,包括詳細的FFmpeg命令行參數選項,包括音視頻轉封裝、轉碼、水印、字幕等,包括各種音視頻特效(倍速、倒放、旋轉、模糊、畫中畫、九宮格、浮雕和字幕效果等),包括流媒體方方面面(RTSP、RTMP、HLS)等直播功能,包括音視頻採集,以及各種開發語言(C++、Java、Python)調用FFmepg命令行等。本書為FFmpeg音視頻流媒體系列的第三部。 全書共分為12章:系統講解了FFmpeg命令行的基礎知識、轉封裝與轉碼、圖片水印與文字跑馬燈、各種音視頻特效、流媒體直播功能、音視頻採集功能,以及各種開發語言調用FFmepg命令行等。 書中包含大量的示例,圖文並茂,爭取讓一個音視頻流媒體領域的讀者真正入門,從此開啟流媒體直播編程的大門。本書知識體系比較完整,側重FFmpeg命令行及音視頻特效的原理講解及應用。建議讀者先學習FFmpeg音視頻流媒體系列的第一本《FFmpeg入門詳解——音視頻原理及應用》和第二本《FFmpeg入門詳解——流媒體直播原理及應用》,然後來學習本書。本書的講解過程由淺入深,讓讀者在不知不覺中學會了FFmpeg命令行的基礎知識,並能動手實現各種轉碼功能、音視頻特效處理、並能實現流媒體直播功能。 本書可作為FFmpeg命令行應用及音視頻特效處理方向的入門書籍,也可作為高年級本科生和研究生的學習參考書籍。

目錄大綱

 

 

目錄

 

第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.10ffmpeg h詳解

 

3.11FFmpeg其他選項

 

3.11.1formats: 支持的文件格式

 

3.11.2muxers: 支持的封裝器格式

 

3.11.3demuxers: 支持的解封裝器格式

 

3.11.4devices: 支持的設備

 

3.11.5encoders: 支持的編碼器格式

 

3.11.6decoders: 支持的解碼器格式

 

3.11.7protocols: 支持的協議格式

 

3.11.8hwaccels: 支持的硬件加速格式

 

3.11.9layouts: 支持的聲道模式

 

3.11.10sample_fmts: 支持的採樣格式

 

3.11.11colors: 支持的顏色名稱

 

3.11.12pix_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轉碼為AC3

 

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.1vf的movie濾鏡

 

6.2.2vf的movie中的絕對路徑

 

6.2.3vf的delogo去掉水印

 

6.3文字水印及位置控制

 

6.3.1vf的drawtext添加固定文字水印

 

6.3.2vf的drawtext控制文字顏色及大小

 

6.3.3查看drawtext的參數

 

6.3.4drawtext的文字內容來源

 

6.3.5drawtext的主要參數

 

6.3.6vf的drawtext添加系統時間水印

 

6.4文字跑馬燈案例實戰

 

6.5FFmpeg的overlay技術簡介 

 

6.5.1overlay技術簡介

 

6.5.2filter_complex overlay添加水印

 

6.6控制文字的大小和顏色並解決中文亂碼問題

 

6.6.1vf的drawtext添加中文水印

 

6.6.2vf的drawtext解決中文亂碼問題

 

6.6.3vf的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.1NginxHTTPFLV生成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章體驗FFmpeg 5.0

 

11.1安裝FFmpeg 5.0

 

11.1.1FFmpeg 5.0的官網簡介

 

11.1.2FFmpeg 5.0的安裝

 

11.2使用FFmpeg 5.0實現音視頻轉碼

 

11.3使用FFmpeg 5.0實現文字跑馬燈

 

11.4使用FFmpeg 5.0實現音視頻特效

 

11.5使用FFmpeg 5.0實現流媒體及直播功能

 

第12章各種開發語言調用FFmpeg命令行

 

12.1C++調用FFmpeg命令行

 

12.1.1C++調用FFmpeg命令行的跨平臺通用代碼

 

12.1.2Visual Studio調用FFmpeg命令行

 

12.1.3Qt調用FFmpeg命令行

 

12.1.4MinGW調用FFmpeg命令行

 

12.1.5Linux系統下C++調用FFmpeg命令行

 

12.1.6popen與pclose

 

12.2Java調用FFmpeg命令行

 

12.3Python調用FFmpeg命令行