ffmpeg - 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 饱和度应用到整个视频轨道。是否有一种效果可以实现这一点,或者有没有一种方法可以只降低效果的饱和度,然后“覆盖”视频轨道,这样轨道就不会被触及?
解决方案
您只想将噪声添加到亮度通道,它几乎总是第一个通道,可寻址为c0
. 所以将噪声参数更改为
noise=c0s=14:c0f=t+u
推荐阅读
- r - 成功处理前几个结果后函数运行出错
- java - 传递 maxlines 时,多行 EditText 使应用程序崩溃
- css - 为什么顺风不允许我从根公用文件夹导入图像?
- python - 用python删除excel文件的密码不起作用
- godot - Godot - 缺失节点
- python - 尝试从其他代码导入脚本
- python - 如何正确打包多通道时间序列数据并为 Tensorflow CNN-LSTM 构建网络?
- postgresql - Nestjsx/crud + typeorm + postgres - 仅在满足特定条件时过滤
- android - 如何动态地将列表项添加到recyclerView?
- php - 如何在 PHP 网站上发布特定于 URL 的元标记