FFmpeg——參數詳解

FFmpeg參數詳解

  • 一、基本命令結構
    • 1.1、查詢參數
      • 1.1.1、version
      • 1.1.2、buildconf
      • 1.1.3、devices
      • 1.1.4、formats
      • 1.1.5、muxers
      • 1.1.6、demuxers
      • 1.1.7、codecs
      • 1.1.8、decoders
      • 1.1.9、encoders
      • 1.1.10、bsfs
      • 1.1.11、protocols
      • 1.1.12、filters
      • 1.1.13、pix_fmts
      • 1.1.14、layouts
      • 1.1.15、sample_fmts
      • 1.1.16、colors

一、基本命令結構

ffmpeg [全局選項] [輸入文件選項] -i 輸入文件 [輸出文件選項] 輸出文件

1.1、查詢參數

命令參數內容
-version顯示版本
-buildconf顯示編譯配置
-devices顯示ffmpeg支持的輸入/輸出設備(如攝像頭、屏幕捕獲、音頻設備等)
-formats顯示可用格式(muxers+demuxers)
-muxers顯示可用復用器
-demuxers顯示可用解復用器
-codecs顯示可用編解碼器 (decoders+encoders)
-decoders顯示可用解碼器
-encoders顯示可用編碼器
-bsfs顯示可用比特流filter
-protocols顯示可用的協議
-filters顯示可用的過濾器
-pix_fmts顯示可用的像素格式
-layouts顯示標準聲道名稱
-sample_fmts顯示可用的音頻采樣格式
-colors顯示可用的顏色名稱

1.1.1、version

在這里插入圖片描述

  • 第一段為版本信息
  • 第二段為FFmpeg在編譯時使用的具體配置選項。FFmpeg是一個功能強大的多媒體框架,可以處理視頻和音頻數據。這段配置信息表明了FFmpeg在編譯時啟用或禁用了哪些特性、庫和硬件加速等
  • 第三段為函數庫的版本信息

1.1.2、buildconf

在這里插入圖片描述

實際就是將上文的第二段參數更加詳細的描述。

1.1.3、devices

在這里插入圖片描述

ffmpeg -devices 僅顯示 FFmpeg 支持的設備類型,不顯示具體設備名稱。要查看具體設備(如攝像頭、麥克風),需使用特定平臺的命令(如 avfoundation、dshow)。

# 查看macOs
ffmpeg -f avfoundation -list_devices true -i ""

在這里插入圖片描述

1.1.4、formats

在這里插入圖片描述

關鍵說明:

  • D.,Demuxing(解封裝支持,即可以讀取該格式)
  • .E,Muxing(封裝支持,即可以寫入該格式)
  • DE,同時支持輸入和輸出(如mp4,mov,avi)
  • ..d,device,硬件設備

常見格式:

格式說明
mp4MP4 容器(H.264/AAC 常用)
movQuickTime 格式
aviAVI 容器
mkvMatroska 容器(支持多音軌/字幕)
flvFlash 視頻
webmWebM(VP9/Opus)
mpegtsMPEG-TS(流媒體常用)
gif動畫 GIF
wav無損 PCM 音頻
mp3MP3 音頻
aacADTS AAC 音頻
h264裸 H.264 視頻流
yuv4mpegpipeYUV 原始幀(用于濾鏡處理)

如何檢查某個格式是否支持?

ffmpeg -formats | grep "格式名"#輸出D   mov,mp4,m4a,3gp,3g2,mj2 QuickTime / MOVE  mp4             MP4 (MPEG-4 Part 14)

總結:

  • ffmpeg -formats 列出所有支持的容器格式?(不包含編解碼器)。
  • 要查看支持的編解碼器,使用 ffmpeg -codecs
  • 要查看支持的硬件加速,使用 ffmpeg -hwaccels

1.1.5、muxers

只查看復用器:
在這里插入圖片描述

1.1.6、demuxers

只查看解復用器:
在這里插入圖片描述

1.1.7、codecs

查看支持的編解碼器:
在這里插入圖片描述

字段解釋:

符號含義
D支持解碼
?E? 支持編碼
?V?視頻編解碼器
?A? 音頻編解碼器
?S? 字幕編解碼器
?I僅支持幀內編碼(如 JPEG)
?L?有損壓縮
?S?無損壓縮

常見視頻編解碼器:

編解碼器類型說明
h264有損H.264/AVC(默認用 libx264)
hevc有損H.265/HEVC(默認用 libx265)
mpeg4有損MPEG-4 Part 2(如 DivX/Xvid)
vp9有損Google VP9
av1有損AOMedia AV1
prores無損Apple ProRes
ffv1無損FFmpeg 無損視頻

常見音頻編解碼器:

編解碼器類型說明
aac有損AAC(高級音頻編碼)
mp3有損MPEG Audio Layer III
opus有損低延遲 Opus
flac無損FLAC
alac無損Apple Lossless

常見字幕編解碼器:

編解碼器說明
assSSA/ASS 字幕
srtSubRip 字幕
webvttWebVTT 字幕

常用查詢示例:
檢查H.264支持:

ffmpeg -codecs | grep h264# 輸出DEV.LS h264                 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 libopenh264) (encoders: libx264 libx264rgb libopenh264 h264_videotoolbox)

查找所有無損音頻編解碼器:

ffmpeg -codecs | grep "A..S"# 輸出DEVIL. asv1                 ASUS V1DEVIL. asv2                 ASUS V2D.V.L. lscr                 LEAD Screen CaptureDEAI.S alac                 ALAC (Apple Lossless Audio Codec) (decoders: alac alac_at) (encoders: alac alac_at)D.AI.S apac                 Marian's A-pac audioD.AI.S ape                  Monkey's AudioD.AI.S atrac3al             ATRAC3 AL (Adaptive TRansform Acoustic Coding 3 Advanced Lossless)D.AI.S atrac3pal            ATRAC3+ AL (Adaptive TRansform Acoustic Coding 3+ Advanced Lossless) (decoders: atrac3plusal)D.AILS bonk                 Bonk audioD.AI.S dst                  DST (Direct Stream Transfer)DEAILS dts                  DCA (DTS Coherent Acoustics) (decoders: dca) (encoders: dca)DEAI.S flac                 FLAC (Free Lossless Audio Codec)DEA..S mlp                  MLP (Meridian Lossless Packing)D.AI.S mp4als               MPEG-4 Audio Lossless Coding (ALS) (decoders: als)D.AI.S osq                  OSQ (Original Sound Quality)DEAI.S pcm_bluray           PCM signed 16|20|24-bit big-endian for Blu-ray mediaDEAI.S pcm_dvd              PCM signed 20|24-bit big-endianD.AI.S pcm_f16le            PCM 16.8 floating point little-endianD.AI.S pcm_f24le            PCM 24.0 floating point little-endianDEAI.S pcm_f32be            PCM 32-bit floating point big-endian
...

查看可用的硬件加速編解碼器:

ffmpeg -hwaccels# 輸出
Hardware acceleration methods:
videotoolbox

總結:

  • 編碼器/解碼器
    • 若顯示 D 和 E(如 DEA.L. aac),表示支持解碼和編碼。
    • 若只有 D(如 D.V.L. cinepak),則僅支持解碼(無法用此格式編碼)。
  • 實際使用編解碼器:在命令中通過 -c:v(視頻)或 -c:a(音頻)指定,例如:
ffmpeg -i input.mp4 -c:v libx264 -c:a aac output.mp4

1.1.8、decoders

列出 FFmpeg 支持的所有解碼器?(即可以解碼的編解碼器)
在這里插入圖片描述

字段解釋:

符號含義
V?視頻解碼器
?A?音頻解碼器
?S?字幕解碼器
?F?支持幀級多線程
?S?支持切片級多線程
?X?實驗性解碼器(可能不穩定)
?B?支持 draw_horiz_band(舊式多線程)
?D?支持直接渲染方法 1

常見視頻解碼器:

解碼器說明
h264H.264/AVC
hevcH.265/HEVC
mpeg4MPEG-4 Part 2(DivX/Xvid)
vp9Google VP9
av1AOMedia AV1
proresApple ProRes
mjpegMotion JPEG

常見音頻解碼器:

解碼器說明
aacAAC(高級音頻編碼)
mp3MP3
opusOpus
flacFLAC
ac3Dolby Digital (AC-3)

常見字幕解碼器:

解碼器說明
assSSA/ASS 字幕
srtSubRip 字幕
webvttWebVTT 字幕

常用查詢示例:

# 檢查H.264解碼器支持:
ffmpeg -decoders | grep h264# 查找所有音頻解碼器
ffmpeg -decoders | grep "A"# 查看實驗性解碼器
ffmpeg -decoders | grep "X"

1.1.9、encoders

列出 FFmpeg 支持的所有編碼器?(即可用于編碼的編解碼器)

在這里插入圖片描述

字段解釋:

符號含義
V?視頻編碼器
?A?音頻編碼器
?S?字幕編碼器
?F?支持幀級多線程
?S?支持切片級多線程
?X?實驗性編碼器(可能不穩定)
?B?支持 draw_horiz_band(舊式多線程)
?D?支持直接渲染方法 1

常見視頻編碼器:

編碼器類型說明
libx264有損H.264/AVC(最常用)
libx265有損H.265/HEVC(高效壓縮)
libvpx-vp9有損Google VP9(WebM/流媒體)
libaom-av1有損AOMedia AV1(新一代開源編碼)
mpeg4有損MPEG-4 Part 2(兼容舊設備)
prores無損Apple ProRes(專業視頻編輯)
ffv1無損FFmpeg 無損視頻(歸檔用)

常見音頻編碼器:

編碼器類型說明
aac有損AAC(主流音頻格式)
libmp3lame有損MP3(兼容性廣)
libopus有損Opus(低延遲,適合語音/流媒體)
flac無損FLAC(無損壓縮)
alac無損Apple Lossless

常見字幕編碼器:

編碼器說明
srtSubRip 字幕
assSSA/ASS 字幕(支持樣式)
webvttWebVTT 字幕

常用查詢示例:

# 檢查 H.264 編碼器?:
ffmpeg -encoders | grep libx264# 查找所有無損音頻編碼器?:
ffmpeg -encoders | grep "A.*S"# 查看實驗性編碼器?:
ffmpeg -encoders | grep "X"

1.1.10、bsfs

列出 FFmpeg 支持的所有比特流過濾器(Bitstream Filters,簡稱 BSFs)?。這些過濾器用于在解碼后、編碼前修改編碼的比特流,而無需完全解碼和重新編碼。
在這里插入圖片描述

常見比特流過濾器及用途:

過濾器名稱用途
aac_adtstoasc將 AAC 數據從 ADTS 轉換為 ASC 格式(用于 MP4 封裝)
h264_mp4toannexb將 H.264 比特流從 MP4 格式轉換為 Annex B 格式(用于 TS 流或裸流)
hevc_mp4toannexb將 HEVC 比特流從 MP4 格式轉換為 Annex B 格式
extract_extradata從比特流中提取 extradata(如 SPS/PPS)
dump_extra打印 extradata 信息(調試用)
vp9_superframe合并 VP9 超級幀
vp9_superframe_split拆分 VP9 超級幀
h264_metadata修改 H.264 流的元數據(如 level、profile)
hevc_metadata修改 HEVC 流的元數據
mpeg4_unpack_bframes解包 MPEG-4 B 幀
noise向比特流添加噪聲(測試用)
null不做任何修改(用于測試或占位)

使用場景:

# MP4 轉 TS 流時處理 H.264 數據
ffmpeg -i input.mp4 -c:v copy -bsf:v h264_mp4toannexb -f mpegts output.ts# 提取 H.264 的 SPS/PPS 信息?:
ffmpeg -i input.mp4 -c:v copy -bsf:v dump_extra -f null -# 修改 H.264 的 profile/level?:
ffmpeg -i input.mp4 -c:v copy -bsf:v h264_metadata=profile=high output.mp4# 處理 AAC 音頻流?:
ffmpeg -i input.mp4 -c:a copy -bsf:a aac_adtstoasc output.aac

總結:

  • 作用階段?:比特流過濾器在解碼后、編碼前處理數據,適用于 -c copy(流復制)場景。
  • ?組合使用?:可通過逗號分隔多個過濾器(如 -bsf:v h264_mp4toannexb,noise)。
  • ?查看參數?:使用 ffmpeg -h bsf=<過濾器名> 查看具體選項(如 ffmpeg -h bsf=h264_metadata)。

1.1.11、protocols

列出 FFmpeg 支持的所有輸入/輸出協議?(如 file, http, rtmp 等)。這些協議定義了 FFmpeg 如何訪問輸入源或輸出到目標位置。

在這里插入圖片描述
在這里插入圖片描述

常見輸入協議:

協議名用途
file本地文件(默認協議,可省略)
http/httpsHTTP/HTTPS 流(如 MP4/M3U8)
hls HLS直播/點播流(.m3u8)
rtmp/rtmpsRTMP 直播流(帶/不帶 SSL)
tcp/udp網絡流(如 RTP/RTSP)
pipe從標準輸入(stdin)讀取數據
concat拼接多個文件(如分段視頻)
srtp安全 RTP 流(加密傳輸)

常見輸出協議:

協議名用途
file輸出到本地文件
http/https輸出到 HTTP 服務器
rtmp/rtmps推流到 RTMP 服務器
pipe輸出到標準輸出(stdout)
icecast輸出到 Icecast 音頻服務器
udp輸出為 UDP 數據包

使用場景:

# 從HTTP下載視頻
ffmpeg -i http://example.com/video.mp4 -c copy output.mp4# 推流到 RTMP 服務器
ffmpeg -i input.mp4 -c:v libx264 -f flv rtmp://server/live/stream_key# 拼接分段視頻?(使用 concat 協議)
ffmpeg -f concat -i file_list.txt -c copy output.mp4# 從 UDP 接收流?:
ffmpeg -i udp://@239.1.1.1:1234 -c copy output.ts# 輸出到 stdout 并管道處理?:
ffmpeg -i input.mp4 -f mp4 pipe:1 | other_command

總結:

  • 隱式協議?:若未指定協議(如 ffmpeg -i input.mp4),默認使用 file 協議。
  • ?協議參數?:部分協議支持附加參數(如 http 的 user_agent,rtmp 的 flashver)。
    ?- 動態協議?:某些協議(如 hls、concat)需要指定 -f 格式。

1.1.12、filters

列出 FFmpeg 支持的所有濾鏡(Filters)?,包括視頻濾鏡(vf)、音頻濾鏡(af)和通用濾鏡。這些濾鏡可以對音視頻流進行各種處理,如裁剪、縮放、降噪、混音等。

在這里插入圖片描述

字段說明:

符號含義
?T?支持時間軸(Timeline)操作(如 enable=‘between(t,10,20)’)
?S?支持多線程切片處理(Slice threading)
?C?支持動態命令(Command)控制(如運行時修改參數)
?A?音頻濾鏡(輸入/輸出均為音頻)
?V?視頻濾鏡(輸入/輸出均為視頻)
?N?動態輸入/輸出(如 amix 可接受多個輸入)
?`**?**`

常用視頻濾鏡:

濾鏡名用途示例
scale調整分辨率scale=1280:720
crop裁剪視頻crop=640:480💯50
`hflip/vflip 水平/垂直翻轉hflip
rotate旋轉視頻rotate=90*PI/180
overlay疊加視頻overlay=10:10
trim剪切片段trim=start=10:end=20
eq調整亮度/對比度eq=brightness=0.2
drawtext添加文字drawtext=text=‘Hello’:x=10:y=10
fps修改幀率fps=30
yadif去隔行掃描yadif=1

常用音頻濾鏡:

濾鏡名用途示例
volume調整音量volume=2.0
afade淡入淡出afade=t=in:ss=0:d=5
atempo變速不變調atempo=1.5
aresample重采樣aresample=44100
pan聲道調整`pan=stereo
highpass/lowpass高通/低通濾波highpass=f=200

復雜濾鏡:
FFmpeg 支持多個濾鏡組合,使用 -filter_complex 處理復雜任務:

# 示例:水平翻轉 + 縮放 + 疊加
ffmpeg -i input.mp4 -filter_complex "[0:v]hflip,scale=640:360[flipped];[0:v][flipped]overlay=10:10" output.mp4

常見使用場景:

# 調整視頻分辨率?(保持寬高比:scale=1280:-1(自動計算高度))
ffmpeg -i input.mp4 -vf "scale=1280:720" output.mp4# 裁剪視頻? 640:480 = 輸出寬高,100:50 = 起始坐標(左上角)
ffmpeg -i input.mp4 -vf "crop=640:480:100:50" output.mp4# 添加水印?
ffmpeg -i input.mp4 -i logo.png -filter_complex "overlay=10:10" output.mp4# 提取音頻片段?
ffmpeg -i input.mp3 -af "atrim=start=10:end=20" output.mp3# 合并多個音頻流
ffmpeg -i audio1.mp3 -i audio2.mp3 -filter_complex "amix=inputs=2" output.mp3

注意事項:

  1. 濾鏡鏈順序?:濾鏡按從左到右順序執行(如 hflip,scale 先翻轉再縮放)。
  2. ?GPU 加速?:部分濾鏡支持 GPU(如 scale_npp),需檢查 FFmpeg 編譯選項。
  3. 性能優化?:
    • 使用 -vf 代替 -filter_complex 處理簡單任務。
    • 啟用多線程(如 -threads 4)。

1.1.13、pix_fmts

列出 FFmpeg 支持的所有像素格式(Pixel Formats)?。像素格式定義了視頻幀中像素的存儲方式(如 RGB、YUV、色彩深度、平面/打包排列等),對視頻處理和編解碼性能有重要影響。

在這里插入圖片描述

字段說明:

符號含義
?I?支持作為輸入格式(解碼器可輸出此格式)
?O?支持作為輸出格式(編碼器可接受此格式)
?H?硬件加速格式(如 vaapi_vld)
?P?調色板格式(如 GIF)
?B?比特流格式(如字幕)
?NAME?像素格式名稱(如 yuv420p)
?NB_COMPONENTS? 顏色分量數(如 YUV=3,NV12=2)
?BITS_PER_PIXEL? 每像素總比特數(如 12=8+2+2)

YUV格式(主流視頻編碼):

格式說明用途
yuv420p標準 YUV 4:2:0 平面格式H.264/HEVC 默認
yuvj420p帶 JPEG 色彩范圍的YUV 4:2:0 舊式 MJPEG
yuv422pYUV 4:2:2 平面格式專業視頻
yuv444pYUV 4:4:4 平面格式高保真
nv12/nv21YUV 4:2:0 半平面(Y+UV交錯)硬件加速常用

RGB格式:

格式說明用途
rgb248-bit RGB 打包格式
rgbaRGB + Alpha 通道
bgr0BGR 打包(Windows 常用)

硬件加速格式:

格式說明
vaapi_vldIntel/AMD VAAPI 硬件解碼
dxva2_vldWindows DXVA2 硬件解碼
cudaNVIDIA CUDA 加速

特殊格式:

格式說明
gray8-bit 灰度圖像
pal88-bit 調色板(如 GIF)

使用場景:

# 查看當前視頻的像素格式?
ffmpeg -i input.mp4
# 在輸出中查找 Stream #0:0(und): Video: h264 (yuv420p)。# 強制指定像素格式
# 輸出為 yuv420p(兼容性最佳)
ffmpeg -i input.mp4 -pix_fmt yuv420p output.mp4# 轉換為灰度視頻
ffmpeg -i input.mp4 -pix_fmt gray output.mp4# 硬件解碼時指定格式?
# 使用 VAAPI 解碼并轉換為 yuv420p
ffmpeg -hwaccel vaapi -i input.mp4 -pix_fmt yuv420p output.mp4# 檢查編碼器支持的格式
ffmpeg -h encoder=libx264 | grep pix_fmts

1.1.14、layouts

列出 FFmpeg 支持的所有音頻通道布局(Audio Channel Layouts)?,這些布局定義了音頻通道的數量和排列方式(如立體聲、5.1環繞聲等)。

在這里插入圖片描述

在這里插入圖片描述

字段說明:

字段含義
?NAME?布局名稱(如 stereo, 5.1)
?DESCRIPTION?通道縮寫組合(見下表)

通道縮寫對照:

縮寫全稱說明
FLFront Left左前
FRFront Right右前
FCFront Center中置
LFELow Frequency低頻(低音炮)
BLBack Left左后
BRBack Right右后
SLSide Left左側環繞
SRSide Right右側環繞
DLDownmix Left下混左
DRDownmix Right下混右

常見布局及用途:

布局名稱通道數典型用途
mono1單聲道(播客、電話語音)
stereo2立體聲(音樂、普通視頻)
5.165.1環繞聲(影院、游戲)
5.1(side)65.1(側環繞替代后環繞)
7.187.1環繞聲(高端影音)
7.1(wide)87.1(增加前中置)

使用場景:

# 查看音頻文件的通道布局?
ffmpeg -i input.mp3
# 在輸出中查找 Stream #0:0: Audio: mp3 (stereo)。# 強制指定輸出通道布局?
# 將輸入轉為單聲道
ffmpeg -i input.mp3 -ac 1 -layout mono output_mono.mp3# 將5.1音頻轉為立體聲(自動下混)
ffmpeg -i input_5.1.mkv -ac 2 output_stereo.mp3# 自定義通道映射?
# 提取5.1音頻中的左前(FL)和右前(FR)通道
ffmpeg -i input_5.1.mkv -filter_complex "channelsplit=channel_layout=5.1:channels=FL+FR" output_stereo.mp3# 檢查編碼器支持的布局?
ffmpeg -h encoder=aac | grep channel_layouts
# 輸出示例
Supported channel layouts: mono stereo 5.1

關鍵點:

  • 自動轉換?:若未指定 -layout,FFmpeg 會根據 -ac(通道數)自動選擇布局(如 -ac 2 → stereo)。
  • 兼容性?:stereo 和 mono 是所有設備支持的基準布局。
  • ?無損處理?:使用 -acodec copy 時需保持輸入輸出布局一致,否則會失敗。

1.1.15、sample_fmts

列出 FFmpeg 支持的所有音頻采樣格式(Sample Formats)?。這些格式定義了音頻樣本的位深度?(如 8-bit、16-bit、32-bit)和數據類型?(如整數 signed/unsigned 或浮點數 float),直接影響音頻質量和處理精度。
在這里插入圖片描述

字段說明:

符號含義
?I?支持作為輸入格式(解碼器可輸出此格式)
?O?支持作為輸出格式(編碼器可接受此格式)
?H?硬件加速格式(如某些設備的 s16)
?NAME? 采樣格式名稱(如 s16, flt)
?DESCRIPTION?格式的詳細說明(位深度和類型)

常見采樣格式:

格式名位深度數據類型典型用途
u88-bit無符號整數低質量音頻(電話、舊游戲)
s1616-bit有符號整數CD音質(標準 PCM WAV/MP3)
s3232-bit有符號整數專業音頻處理
flt32-bit浮點數高動態范圍(錄音/混音)
dbl64-bit浮點數超高精度計算(科學分析)

使用場景:

# 查看音頻文件的采樣格式
ffmpeg -i input.wav
# 在輸出中查找 Stream #0:0: Audio: pcm_s16le (s16le)。# 強制指定輸出采樣格式?
# 轉換音頻為 32-bit 浮點格式(保留高精度)
ffmpeg -i input.mp3 -sample_fmt flt output.wav# 使用 16-bit 整數(兼容性最佳)
ffmpeg -i input.flac -sample_fmt s16 output.mp3# 硬件加速時的格式限制?
# 某些硬件編碼器僅支持 s16(需檢查編碼器支持)
ffmpeg -hwaccel cuda -i input.wav -c:a aac -sample_fmt s16 output.m4a# 檢查編碼器支持的格式?
ffmpeg -h encoder=pcm_s16le | grep sample_fmts

關鍵點:

  • 位深度與質量?:
    • s16(16-bit)是標準 CD 音質(動態范圍 ~96dB)。
    • flt(32-bit float)適合多次音效處理(避免截斷噪聲)。
  • 兼容性?:
    • MP3/AAC 等有損編碼通常內部使用 s16。
    • WAV/FLAC 支持高精度格式(如 s32 或 flt)。?
  • 性能?:
    • 整數格式(s16)比浮點(flt)處理更快。
    • 硬件加速可能限制格式(如僅支持 s16)。

1.1.16、colors

列出 FFmpeg 支持的所有顏色名稱和顏色空間標識符。這些顏色名稱可以在 FFmpeg 濾鏡(如 drawtext、color)或參數(如背景色)中直接使用,而顏色空間標識符(如 bt709、smpte170m)用于定義視頻的 YUV/RGB 色彩標準。

在這里插入圖片描述

預定義顏色名稱:

FFmpeg 支持 CSS 風格的顏色名稱(如 red、blue)和十六進制值(如 #FF0000)。示例:

$ ffmpeg -colors
Colors:
name            RGB hex
----            -------
white           FFFFFF
red             FF0000
green           00FF00
blue            0000FF
yellow          FFFF00
...(其他顏色)

顏色空間標識符:
列出 FFmpeg 支持的顏色標準(用于 -colorspace、-color_primaries 等參數):

Color spaces:
bt709           BT.709
smpte170m       SMPTE-170M
bt2020          BT.2020
...(其他標準)

常見顏色名稱:

顏色名十六進制值示例用途
black#000000背景填充
white#FFFFFF文字顏色
red#FF0000警告標記
green#00FF00成功提示
blue#0000FF超鏈接
yellow#FFFF00高亮文本
transparen 特殊值透明背景

常見色彩空間標識符:

標識符標準用途
bt709BT.709 (Rec.709)高清電視(sRGB 相似)
smpte170mSMPTE-170M(BT.601) 標清電視(NTSC/PAL)
bt2020BT.2020超高清/HDR
rgb線性 RGB計算機圖形

使用場景:

在濾鏡中使用顏色名稱?:

# 添加紅色文字
ffmpeg -i input.mp4 -vf "drawtext=text='Error':fontcolor=red:x=10:y=10" output.mp4# 創建綠色背景視頻
ffmpeg -f lavfi -i "color=c=green:size=640x480" -t 5 green_screen.mp4

指定顏色空間參數?:

# 轉換視頻色彩標準為 BT.709
ffmpeg -i input.mp4 -colorspace bt709 output.mp4# 強制使用 sRGB 色彩原色
ffmpeg -i input.mp4 -color_primaries bt709 output.mp4

透明背景處理(PNG/GIF):

# 生成帶透明背景的文字
ffmpeg -f lavfi -i "color=c=black@0.0:size=640x480" -vf "drawtext=text='FFmpeg':fontcolor=white" -frames:v 1 transparent.png

關鍵點:

  • ?顏色名稱兼容性?:
    • 支持所有 CSS 顏色名稱。
    • 十六進制格式支持 3/6/8 位(如 #RGB、#RRGGBB、#RRGGBBAA)。
  • ?顏色空間轉換?:
    • 錯誤的空間轉換會導致色彩失真(如 BT.601→BT.709)。
    • 使用 -vf “colorspace=…” 濾鏡可精確控制轉換。
  • 透明度?:
    • 格式需支持 Alpha 通道(如 PNG、MOV with PNG codec)。
    • 使用 color=black@0.0 表示完全透明。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/93113.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/93113.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/93113.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

流媒體傳輸:RTSP傳輸詳解(包含RTP,RTCP,RTSP詳解)

一、什么是 RTSP?協議 1.1 RTSP 協議簡介? RTSP&#xff0c;全稱實時流傳輸協議&#xff08;Real Time Streaming Protocol&#xff09;&#xff0c;是一種位于應用層的網絡協議。它主要用于在流媒體系統中控制實時數據&#xff08;如音頻、視頻等&#xff09;的傳輸&#…

Python學習-----1.認識Python

目錄 前言 1.關于Python博客前期的內容 2.計算機基礎概念 2.1.什么是計算機? 2.2.什么是編程&#xff1f; 2.3.編程語言有哪些&#xff1f; 3.Python背景知識 3.1.Python是怎么來的&#xff1f; 3.2.Python都可以用來干什么&#xff1f; 3.3.Python的優缺點 3.4.Py…

MongoDB頻繁掉線頻繁斷開服務的核心原因以及解決方案-卓伊凡|貝貝|莉莉|糖果

MongoDB頻繁掉線頻繁斷開服務的核心原因以及解決方案-卓伊凡|貝貝|莉莉|糖果查看日志內容 &#xff1a;2025-07-22T17:05:20.2160800 I CONTROL [initandlisten] MongoDB starting : pid34231 port28018 dbpath/data/mongodb 64-bit hostVM-0-17-centos 2025-07-22T17:05:20.21…

VUE懶加載(4種方式)

第一種 使用 Webpack 的動態導入&#xff08;Dynamic Imports&#xff09;第二種 Vue Router 中的懶加載第三種 使用第三方庫第四種 使用 Vuex 進行異步數據加載雖然不是直接的懶加載&#xff0c;但你可以在組件內部或 Vuex store 中使用異步 action 來加載數據&#xff0c;確保…

【ROS1】09-ROS通信機制——參數服務器

目錄 一、參數服務器概念 二、參數操作 2.1 C實現 2.1.1 新增參數 2.1.2 修改參數 2.1.3 查詢參數 2.1.4 刪除參數 2.2 python實現 2.2.1 新增參數 2.2.2 修改參數 2.2.3 查詢參數 2.2.4 刪除參數 一、參數服務器概念 假設正在開發一個復雜的機器人應用&#xff0…

C#.NET dapper 詳解

簡介 Dapper 是由 Stack Overflow 團隊開發的一個簡單、高性能的微型 ORM&#xff08;Object?Relational Mapper&#xff09;&#xff0c;僅幾千行代碼&#xff0c;依賴于 ADO.NET 的 IDbConnection&#xff0c;通過動態生成 IL 來映射結果到實體對象。 與 EF、NHibernate 這類…

【LeetCode 熱題 100】35. 搜索插入位置——二分查找(左閉右開)

Problem: 35. 搜索插入位置 給定一個排序數組和一個目標值&#xff0c;在數組中找到目標值&#xff0c;并返回其索引。如果目標值不存在于數組中&#xff0c;返回它將會被按順序插入的位置。 請必須使用時間復雜度為 O(log n) 的算法。 文章目錄整體思路完整代碼時空復雜度時間…

Python-初學openCV——圖像預處理(四)——濾波器

目錄 一、圖像噪點消除噪聲&#xff1a; 1、概念 2、均值濾波 3、方框濾波 4 、高斯濾波 5、中值濾波 6、雙邊濾波 7、總結 一、圖像噪點消除噪聲&#xff1a; 1、概念 指圖像中的一些干擾因素&#xff0c;通常是由圖像采集設備、傳輸信道等因素造成的&#xff0c;表現…

嵌入式系統可靠性設計

嵌入式系統可靠性設計硬件件可靠性設計1. 硬件設計原則2. 硬件設計注意問題2.1 引腳布局和走線2.2 元器件選擇和布局2.3 電源和地線分離2.4 EMI/EMC設計2.5 系統可靠性2.6 資源利用和擴展性軟件可靠性設計1. 設計原則1.1 模塊化設計1.2 冗余設計1.3 容錯設計1.4 實時性保障1.5 …

cJSON在STM32單片機上使用遇到解析數據失敗問題

我們在單片機上解析JSON格式時&#xff08;比如在用云平臺物聯網開發時&#xff09;&#xff0c;可以直接使用cJson庫來完成自己的操作&#xff0c;而不需要單獨實現&#xff0c;具體使用方法可以搜一下。 cJson&#xff1a;一個基于 C 語言的 Json 庫&#xff0c;它是一個開源…

python3基礎語法梳理(三)

接上一篇博客 &#x1f3ae; 猜數字小游戲 - Python版 &#x1f9e0; 游戲規則&#xff1a; 系統隨機生成一個 1 到 10 的整數玩家輸入猜測的數字使用 if 語句判斷玩家猜得是否正確提示“猜對了”或“太大/太小了” import randomsecret_number random.randint(1, 10) att…

【docker】將已有mysql腳本導入鏡像內使用

準備SQL腳本將SQL腳本&#xff08;如init.sql&#xff09;放在宿主機目錄下&#xff0c;例如&#xff1a;/path/to/sql-scripts/init.sql啟動MySQL容器并掛載腳本使用 -v 參數將SQL腳本掛載到容器的初始化目錄&#xff1a;docker run --name mysql-container \-e MYSQL_ROOT_PA…

【機器學習深度學習】LLamaFactory微調效果與vllm部署效果不一致如何解決

目錄 前言 一、問題本質 1.1 問題說明 1.2 問題本質示意 二、常見原因 LLaMAFactory對話模板規則定義 模型對話模板定義規則 三、解決方法 提取代碼myset.py 創建jinja文件 安裝VLLM 運行VLLM 安裝運行open webui流程 四、流程梳理 前言 本文主要講述的主要內容…

Python入門構建網頁

用純 Python 構建 Web 應用 本教程將帶你從零開始&#xff0c;構建一個交互式的待辦事項清單。 fasthtml 的核心哲學是“回歸初心&#xff0c;大道至簡”。在當今復雜的前后端分離技術棧中 &#xff0c;它提供了一條返璞歸真的路徑&#xff0c;旨在讓你能用純粹的 Python 構建從…

開源 Arkts 鴻蒙應用 開發(九)通訊--tcp客戶端

文章的目的為了記錄使用Arkts 進行Harmony app 開發學習的經歷。本職為嵌入式軟件開發&#xff0c;公司安排開發app&#xff0c;臨時學習&#xff0c;完成app的開發。開發流程和要點有些記憶模糊&#xff0c;趕緊記錄&#xff0c;防止忘記。 相關鏈接&#xff1a; 開源 Arkts …

Go的defer和recover

在 Go 語言中&#xff0c;defer 和 recover 是兩個緊密相關的關鍵字&#xff0c;主要用于錯誤處理和資源清理。它們通常一起使用&#xff0c;特別是在處理panic&#xff08;運行時崩潰&#xff09;時&#xff0c;確保程序不會直接崩潰&#xff0c;而是能夠優雅地恢復并繼續執行…

Spring Boot 配置文件常用配置屬性詳解(application.properties / application.yml)

前言 Spring Boot 的一大優勢就是通過簡單的配置文件即可快速定制應用行為&#xff0c;而無需編寫大量 XML 配置或 Java 代碼。Spring Boot 使用 application.properties 或 application.yml 作為核心配置文件&#xff0c;支持豐富的配置屬性。 本文將詳細介紹 Spring Boot 常用…

uni-appDay02

1.首頁-通用輪播組件 輪播圖組件需要再首頁和分類頁使用&#xff0c;封裝成通用組件 準備組件自動導入組件 <script setup lang"ts"> import XtxSwiper from /components/XtxSwiper.vue import CustomNavbar from ./components/CustomNavbar.vue </scrip…

FastAPI入門:請求體、查詢參數和字符串校驗、路徑參數和數值校驗

請求體 FastAPI 使用請求體從客戶端&#xff08;例如瀏覽器&#xff09;向 API 發送數據。請求體是客戶端發送給 API 的數據。響應體是 API 發送給客戶端的數據。 使用 Pydantic 模型聲明請求體&#xff0c;能充分利用它的功能和優點 from fastapi import FastAPI from pydanti…

Docker的docker-compose類比Spring的ApplicationContext

總一句話是&#xff1a;Docker Compose&#xff1a;集中化管理多個容器及其依賴的資源環境&#xff1b;ApplicationContext&#xff1a;集中化管理 多個Bean 及其運行所需的資源和依賴關系。 1. 整體概念 Docker Compose&#xff1a;用于定義和運行多容器 Docker 應用程序&…