FFmpeg 缩放器文档
1 描述
FFmpeg 的重缩放器为 libswscale 库的图像转换功能提供了高层接口。具体来说,它可以执行图像缩放和 pixel format 转换。
2 缩放器选项
视频缩放器支持以下命名选项。
选项可以通过在 FFmpeg 工具中指定 -option value 来设置,下文另有说明的少数选项仅可通过 API 使用。若以编程方式使用,可以直接在 SwsContext 的选项中设置,或通过 libavutil/opt.h 的 API 设置。
scaler, scaler_sub
选择要使用的缩放算法。两者的默认值均为 ‘auto’。可接受的值有:
‘auto’
自动选择。对于 ‘scaler_sub’,表示与 ‘scaler’ 使用相同的算法。对于 ‘scaler’,则默认为 ‘sws_flags’ 所选定的缩放标志。
‘bilinear’
双线性滤波器(又称三角滤波器)。
‘bicubic’
2-tap 三次 BC 样条(又称 Mitchell-Netravali 样条)。B 和 C 参数可通过设置 param0 和 param1 配置,默认分别为 0.0 和 0.6。
‘point, neighbor’
点采样(又称最近邻)。
‘area’
面积平均。放大时等同于 ‘bilinear’。
‘gaussian’
2-tap 高斯滤波器近似。锐度参数可通过设置 param0 配置,默认值为 3.0。
‘sinc’
无窗 sinc 滤波器。
‘lanczos’
Lanczos 重采样(经 sinc 加窗的 sinc)。滤波器抽头数可通过设置 param0 配置,默认值为 3。
‘spline’
无窗自然三次样条。
sws_flags
设置缩放标志。此选项也可用于设置缩放算法,不过该用法已弃用,请改用 ‘scaler’ 设置。只能选择一种算法。默认值为 ‘bicubic’。
可接受的值有:
‘fast_bilinear’
选择快速双线性缩放算法。(已弃用)
‘bilinear’
选择双线性缩放算法。(已弃用)
‘bicubic’
选择双三次缩放算法。(已弃用)
‘experimental’
选择实验性缩放算法。(已弃用)
‘neighbor’
选择最近邻重缩放算法。(已弃用)
‘area’
选择面积平均重缩放算法。(已弃用)
‘bicublin’
亮度分量选择双三次、色度分量选择双线性的缩放算法。(已弃用)
‘gauss’
选择高斯重缩放算法。(已弃用)
‘sinc’
选择 sinc 重缩放算法。(已弃用)
‘lanczos’
选择 Lanczos 重缩放算法。默认宽度(alpha)为 3,可通过设置 param0 更改。(已弃用)
‘spline’
选择自然三次样条重缩放算法。(已弃用)
‘print_info’
启用打印/调试日志记录。
‘accurate_rnd’
启用精确舍入。
‘full_chroma_int’
启用完整色度插值。
‘full_chroma_inp’
选择完整色度输入。
‘bitexact’
启用逐位精确(bitexact)输出。
‘unstable’
允许使用实验性新代码。可能会对输出产生细微影响,甚至产生错误的结果。仅用于测试。
srcw (API only)
设置源宽度。
srch (API only)
设置源高度。
dstw (API only)
设置目标宽度。
dsth (API only)
设置目标高度。
src_format (API only)
设置源 pixel format(必须以整数表示)。
dst_format (API only)
设置目标 pixel format(必须以整数表示)。
src_range (boolean)
若值设为 1,表示源为全范围。默认值为 0,表示源为有限范围。
dst_range (boolean)
若值设为 1,为目标启用全范围。默认值为 0,启用有限范围。
gamma (boolean)
若值设为 1,启用伽马校正缩放。默认值为 0。
param0, param1
设置缩放算法参数。所指定的值仅对部分缩放算法有效,其余算法会忽略这些值。指定的值为浮点数。
sws_dither
设置抖动算法。可接受以下取值之一。默认值为 ‘auto’。
‘auto’
自动选择
‘none’
不抖动
‘bayer’
拜耳抖动
‘ed’
误差扩散抖动
‘a_dither’
基于加法的算术抖动
‘x_dither’
基于异或的算术抖动(比 a_dither 更随机、图案更不明显)。
alphablend
设置当输入含有 alpha 而输出不含时所使用的 alpha 混合方式。默认值为 ‘none’。
‘uniform_color’
叠加到纯色背景上
‘checkerboard’
叠加到棋盘格上
‘none’
不混合
sws_backends
设置允许使用的 swscale 后端。这是一个标志选项,因此可以组合多个后端。
‘auto’
自动选择。根据是否设置了 ‘unstable’ 标志,等同于 ‘stable’ 或 ‘all’。这是默认值。
‘stable’
所有稳定后端。
‘unstable’
所有不稳定后端。
‘all’
所有可用后端。
‘legacy’
旧版 swscale 代码。
‘c’
基于模板的参考代码。
‘memcpy’
使用 libc memcpy 的快速路径。
‘x86’
x86 SIMD 内核。
‘aarch64’
AArch64 NEON 内核。
‘spirv’
Vulkan SPIR-V 后端。
‘glsl’
Vulkan GLSL 后端。
3 参见
ffmpeg, ffplay, ffprobe, libswscale
4 作者
FFmpeg 的开发者们。
关于作者身份的详细信息,请参见项目的 Git 历史(https://git.ffmpeg.org/ffmpeg),例如在 FFmpeg 源代码目录中输入 git log 命令,或浏览在线仓库 https://git.ffmpeg.org/ffmpeg。
各组件的维护者列在源代码树中的 MAINTAINERS 文件里。
主机托管由 telepoint.bg 提供