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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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 应用程序&…