如何在 ffmpeg 中设置任意像素的值



我想修改ffmpeg中每个像素的rgb值。

我需要实现以下功能:

A[x + expr_1][y] = expr_2

其中 x 和 y 是当前采样像素,A 是需要修改和expr_1像素的输入帧,expr_2是两个独立的表达式。

我尝试使用 geq 过滤器,但除了当前采样的像素之外,似乎没有办法设置像素的值。对于 istance,函数 p(x,y( 仅返回指定位置的像素值,但不允许为该像素设置值。换句话说,ffmpeg似乎只允许这样的事情:

A[x][y] = expr

有没有办法告诉ffmpeg设置特定像素的值?

谢谢你的时间。

没有办法告诉ffmpeg设置特定像素的值?

ffmpeg -i in.mp4 -vf geq=r='if(eq(X,45)*eq(Y,651),NEWVAL,p(X,Y))' out.mp4

这会将 (45,651( 的 R 通道值设置为 NEWVAL 并中继所有其他像素。

要检查是否可以使用更通用的表达式,您应该用实际expr1expr2来说明您的要求。

最新更新