模糊
模糊是一个程序,用于简单高效地为视频添加运动模糊效果,通过帧混合实现。
功能
运动模糊的程度可以轻松配置,还有其他可选功能,如提高视频的帧率。这可以用于通过混合插值后的画面来生成"假"运动模糊。这种运动模糊不会模糊视频中静止的部分,比如游戏画面中的HUD。
输出示例
600fps 的画面,使用 0.6 模糊程度进行模糊处理
60fps 的画面,插值到 600fps,使用 0.6 模糊程度进行模糊处理
从这些图像可以看出,插值后的 60fps 画面产生的运动模糊效果与实际的 600fps 画面相当。
安装
要在 Windows 上安装模糟,只需下载并运行安装程序。目前不支持其他操作系统。
关于手动安装,请参见手动安装
使用方法
- 打开可执行文件,将视频文件拖到控制台窗口上,或直接将视频文件拖放到可执行文件上。
- 将在视频所在目录生成一个配置文件,可以根据需要进行修改。
- 程序将根据与视频位于同一文件夹中的配置文件处理输入的视频,并将模糊处理后的版本输出到同一目录,文件名后附加" - blur"。
该程序也可以在命令行中使用,使用 -h 或 --help 获取更多信息。
配置设置说明:
模糊
- blur - 是否对输出视频文件进行运动模糊处理
- blur amount - 如果启用模糊,这是运动模糟的程度(0 = 无模糊,1 = 完全混合每一帧,1+ = 更多模糟/残影)
- blur output fps - 如果启用模糊,这是输出视频的帧率。可以是帧率(如 600)或倍数(如 5x)
- blur weighting - 混合帧时使用的权重函数。选项如下:
- equal - 每帧均等混合
- gaussian
- gaussian_sym
- pyramid
- pyramid_sym
- custom weights - 自定义帧权重,例如 [5, 3, 3, 2, 1]。数字越大表示混合时帧越清晰,数字越小表示越模糊。
- custom function - 根据自定义 Python 代码为每帧 'x' 生成权重,例如 -x**2+1
插值
- interpolate - 是否将输入视频文件插值到更高的帧率
- interpolated fps - 如果启用插值,这是输入文件将被插值到的帧率(在混合之前)
渲染
- quality - 输出视频的 crf(使用 GPU 渲染时为 qp)
- deduplicate - 移除重复帧并生成新的插值帧来替代
- preview - 打开渲染预览窗口
- detailed filenames - 在生成的文件名中添加模糊设置
时间缩放
- input timescale - 输入视频文件的时间缩放(将相应地加速/减速)
- output timescale - 输出视频文件的时间缩放
- adjust timescaled audio pitch - 在加速/减速时调整音频音调
滤镜
- brightness - 输出视频的亮度
- saturation - 输出视频的饱和度
- contrast - 输出视频的对比度
高级渲染
- gpu interpolation - 插值时使用 GPU
- gpu rendering - 渲染时使用 GPU
- gpu type (nvidia/amd/intel) - 你的 GPU 类型
- video container - 输出视频容器
- custom ffmpeg filters - 渲染时使用的自定义 ffmpeg 滤镜(替换 GPU 和质量选项)
- debug - 显示调试窗口,打印模糊使用的命令
高级模糊
- blur weighting gaussian std dev - 高斯权重使用的标准偏差
- blur weighting triangle reverse - 反转三角权重的方向
- blur weighting bound - 权重边界,更广泛地分散权重
高级插值
-
interpolation preset - 用于帧率插值的预设,可选:
-
interpolation algorithm - 用于帧率插值的算法,可选:
-
interpolation block size - 用于帧率插值的块大小。更大的块大小 = 模糊精度较低,会在帧的非移动对象周围产生空间,但渲染更快。更小的块大小 = 模糟更精确,但可能导致伪影,且速度更慢。对于更高帧率的输入视频,较小的块大小可能更好。选项:
- 4
- 8 (默认)
- 16
- 32
-
interpolation mask area - 插值时使用的遮罩量。更高的值可能意味着静态物体模糊程度较低,但也可能导致输出不太平滑(图像的移动部分可能被误认为是静态部分而不被模糊)
手动 SVP 覆盖
你可以通过手动定义 json 参数来进一步自定义 SVP 插值设置。点击这里查看设置说明
- manual svp: 启用手动 svp 设置,true/false
- super string: 用作 SVSuper 输入的 json 字符串
- vectors string: 用作 SVAnalyse 输入的 json 字符串
- smooth string: 用作 SVSmoothFps 输入的 json 字符串 这些选项默认情况下不可见,将它们添加到你的配置中即可使用。
游戏视频的推荐设置:
大多数默认设置是我认为效果最好的,但有些设置可能取决于你的偏好。
模糊程度
对于60fps的视频:
目的 | 数值 |
---|---|
最大模糊/平滑度 | >1 |
正常模糊 | 1 |
中等模糊 | 0.5 |
低模糊 | 0.2-0.3 |
在改变帧率时要保持原有的模糊程度,请使用以下公式:
[新模糊程度] = [旧模糊程度] × ([新fps] / [旧fps])
因此,30fps下的正常模糊在60fps下变为0.5,以此类推。
插值后的fps
如果这个值设置得太高,结果可能会变差。一般来说,我建议设置为输入fps的5倍左右。另外,SVP似乎只能插值到输入fps的10倍,所以不要尝试设置更高的值。
注意事项
限制拖影
在60fps的视频上使用模糊效果会产生清晰的动态模糊,但偶尔会留下一些拖影痕迹。要消除这些痕迹,可以使用更高帧率的源视频。使用OBS等软件以120/180fps等帧率录制,能大大减少出现痕迹的情况。
防止输出不平滑
如果你的视频包含重复帧,那么偶尔模糊的帧会显得不协调,使视频在某些点看起来不平滑。"去重"选项会自动用插值帧填充重复帧,防止这种情况发生。
帧服务器输出
Blur支持从帧服务器渲染。这意味着在视频编辑时,你可以避免对输入视频运行blur。在渲染时,只需将输出(确保你的项目是高帧率的)设置为帧服务器,然后将生成的AVI文件拖入blur中即可。注意,某些视频编辑软件可能会限制最大项目帧率。
手动安装
注意:由于依赖项较多,我不建议手动安装。如果可能的话,坚持使用提供的安装程序。