如何在ffmpeg中设置任意像素的值?
How to set the value of an arbitrary pixel in ffmpeg?
我想修改ffmpeg里面每个像素点的rgb值
我需要实现以下功能:
A[x + expr_1][y] = expr_2
其中x和y为当前采样像素,A为需要修改像素的输入帧,expr_1、expr_2为两个独立的表达式
我尝试使用 geq 过滤器,但似乎无法设置当前采样像素以外的像素值。例如,函数 p(x,y) 仅 returns 指定位置像素的值,但不允许为该像素设置值。换句话说,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 并中继所有其他像素。
要检查是否可以使用更通用的表达式,您应该用实际的 expr1
和 expr2
来说明您的要求。
我想修改ffmpeg里面每个像素点的rgb值
我需要实现以下功能:
A[x + expr_1][y] = expr_2
其中x和y为当前采样像素,A为需要修改像素的输入帧,expr_1、expr_2为两个独立的表达式
我尝试使用 geq 过滤器,但似乎无法设置当前采样像素以外的像素值。例如,函数 p(x,y) 仅 returns 指定位置像素的值,但不允许为该像素设置值。换句话说,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 并中继所有其他像素。
要检查是否可以使用更通用的表达式,您应该用实际的 expr1
和 expr2
来说明您的要求。