首页 > 解决方案 > FFMPEG - 在视频中添加(白色、无色、模拟)颗粒,而不会使视频本身去饱和

问题描述

我正在处理旧视频,我基本上将它们转换为 HVEC 并锐化,所以我的命令看起来像这样

.\ffmpeg.exe -i F:\file.mkv -vf unsharp=3:3:1.5 -c:v hevc_nvenc -qp 27 -a:c copy file_new.mkv

与此相关的固有问题当然是,通过降低比特率和锐化不时地我会注意到边缘周围和纯色物体上的一些令人讨厌的伪影。

我注意到一些较老的、多次重制的电影/系列在视频中有很多颗粒,所以我在想——如果我添加颗粒并帮助它掩盖压缩和锐化伪影怎么办?

经过一番搜索,我到了 https://ffmpeg.org/ffmpeg-filters.html#noise ,现在我正在使用这个命令

.\ffmpeg.exe -i F:\file.mkv -vf unsharp=3:3:1.5,noise=alls=14:allf=t+u -c:v hevc_nvenc -qp 30 -a:c copy file_new.mkv

然而这有一个大问题,它只是一种数字 RGB 噪声,有没有办法让它去饱和,模拟?我尝试添加 h=s=0,但是这会将 0 饱和度应用到整个视频轨道。是否有一种效果可以实现这一点,或者有没有一种方法可以只降低效果的饱和度,然后“覆盖”视频轨道,这样轨道就不会被触及?

标签: ffmpeg

解决方案


您只想将噪声添加到亮度通道,它几乎总是第一个通道,可寻址为c0. 所以将噪声参数更改为

noise=c0s=14:c0f=t+u

推荐阅读