jus*_*wim 3 video google-chrome ffmpeg css
我有一个视频,我正在尝试使用 FFMPEG 为视频复制一些 CSS 过滤器。
以下是 CSS 中视频的屏幕截图,具有以下属性filter: contrast(150%):
我尝试使用eq 过滤器在 FFMPEG 中重新创建此效果,将对比度设置为 1.5
ffmpeg -y -i ./input.mp4 -vf "eq=contrast=1.5:brightness=0:saturation=1" -pix_fmt yuv420p ./filtered_input.mp4
Run Code Online (Sandbox Code Playgroud)
我的输出如下所示:
这是这两个屏幕截图并排的图像:
如果您观察图像之间的雪,您会发现左侧的图像(使用 CSS 过滤)稍微更白/更蓝。
以下是原始视频的链接:https ://i.imgur.com/dDmp16s.mp4
我还发现这里的评论讨论了对比度和饱和度之间的关系,但是我发现即使我调整饱和度,甚至只是单独调整饱和度,仍然存在差异。
我的观点是,FFMPEG 的 eq 滤波器与相应的 CSS 滤波器产生非常不同的结果。有谁知道为什么会发生这种情况,以及如何让它们匹配?
我的观点是,FFMPEG 的 eq 滤波器与相应的 CSS 滤波器产生非常不同的结果。有谁知道为什么会发生这种情况
对于亮度、对比度和饱和度应该如何工作,所有软件提供商都没有达成统一的共识。
CSS 过滤器将具有由 W3C 确定的精确数学定义。它们需要精确,以便不同供应商的不同浏览器可以显示相同的渲染图像。CSS 过滤器的当前规范位于: https: //www.w3.org/TR/filter-effects-1/
另一方面,ffmpeg 过滤器是由一群(非常聪明的)工程师以“临时”方式实现的,不需要遵守任何标准。它们只需在 ffmpeg 开发人员看来有用即可。
我怎样才能让它们匹配?
我希望准确了解 ffmpeg 过滤器的作用的唯一方法是阅读源代码(换句话说,源代码就是规范)。通过这样做,您也许能够确定输入参数,这将为您提供与 CSS 过滤器相同的数学结果。或者可能不是。
由于 ffmpeg 过滤器不需要符合任何标准,因此未来的 ffmpeg 更新可能会改变结果。
编辑:另一件事需要警惕的是,即使两个视频文件中的数字颜色值相同,它们在播放时也可能显示不同。原因之一是,如果有关颜色空间的元数据在处理过程中丢失或更改,则 ffmpeg 输出与原始视频处于不同的颜色空间,导致播放器对数字颜色值的解释不同。另一个原因是,如果一个播放器支持另一个播放器不支持的色彩空间转换。根据上面的屏幕截图,它们看起来像是在不同的播放器(浏览器与其他播放器)中查看。最好在同一播放器中观看这两个视频。
| 归档时间: |
|
| 查看次数: |
3969 次 |
| 最近记录: |