FFmpeg基础知识 - 如何给图片或视频去除水印

admin

FFmpeg

FFmpeg去除水印

delogo是FFmpeg中的一个过滤器,用于从视频中删除不需要的标志或水印。它的基本语法是:

delogo=x:y:w:h[:band[:show]]

其中:

x和y:标志或水印左上角的坐标。w和h:标志或水印的宽度和高度。

band:(可选)边缘模糊的宽度。默认值是4。

show:(可选)如果设置为1,将显示一个矩形,表示删除的区域。默认值是0。

例如,以下命令将从视频的左上角删除一个200x100像素的标志或水印:

ffmpeg -i input.mp4 -vf "delogo=x=0:y=0:w=200:h=100" output.mp4

注意,delogo过滤器会尝试用周围的像素来填充删除的区域,但结果可能并不完美。如果可能,最好在源视频中就不要添加不需要的标志或水印。

FFmpeg覆盖水印

用颜色复盖指定区域drawbox

drawbox是ffmpeg中的一个过滤器,用于在视频帧上绘制一个矩形。它的基本语法是:

drawbox=x:y:w:h:color[:t]

其中:

x和y:矩形左上角的坐标。默认值是0。

w和h:矩形的宽度和高度。默认值是源视频的宽度和高度。

color:矩形的颜色。可以是颜色名称(如red、green、blue等)或十六进制颜色代码(如#ff0000、#00ff00、#0000ff等)。默认值是black。

t:矩形的厚度。t=fill填充整个区域。

例如,以下命令将在视频的左上角绘制一个红色的200x100像素的矩形:

ffmpeg -i input.mp4 -vf "drawbox=x=0:y=0:w=200:h=100:color=red:t=5" output.mp4

注意,drawbox过滤器会改变视频的属性,可能会导致视频的质量降低。如果你只是想在视频上添加一个矩形,而不改变其他内容,你应该使用overlay过滤器。

FFmpeg覆盖区域

使用图片复盖指定区域overlay

overlay是ffmpeg中的一个过滤器,用于将一个视频流复盖在另一个视频流上。它的基本语法是:

overlay=x:y

其中:

x和y:复盖视频的左上角坐标。默认值是0。

例如,以下命令将一个视频(input2.mp4)复盖在另一个视频(input1.mp4)上:

ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex "overlay" output.mp4

你也可以指定复盖视频的位置。例如,以下命令将复盖视频放在主视频的右下角:

ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex "overlay=W-w:H-h" output.mp4

在这个命令中,W和H是主视频的宽度和高度,w和h是复盖视频的宽度和高度。

overlay同样可以将一个图片复盖在一个视频的指定职位,实现遮挡或者添加水印的功能。示例

ffmpeg -i input.mp4 -i logo.png -filter_complex"[0:v][1:v] overlay=25:25:enable='between(t,0,20)'" output.mp4

在这个命令中,overlay=25:25指定了图片的位置,enable='between(t,0,20)'指定了图片显示的时间范围。

FFmpeg模糊区域

使指定区域变模糊boxblur

boxblur是ffmpeg中的一个过滤器,用于对视频进行模糊处理。它的基本语法是:

boxblur=luma_radius[:luma_power][:chroma_radius[:chroma_power][:alpha_radius[:alpha_power]]]

其中:

luma_radius:亮度信道的模糊半径,单位是像素。值越大,模糊效果越明显。默认值是2.5。

luma_power:亮度信道的模糊强度。值越大,模糊效果越明显。默认值是1。

chroma_radius:色度信道的模糊半径,单位是像素。默认值是luma_radius。

chroma_power:色度信道的模糊强度。默认值是luma_power。

alpha_radius:透明度信道的模糊半径,单位是像素。默认值是0,表示不对透明度信道进行模糊处理。

alpha_power:透明度信道的模糊强度。默认值是1。

例如,以下命令将视频的亮度信道模糊半径设置为10,色度信道模糊半径设置为5:

ffmpeg -i input.mp4 -vf "boxblur=10:1:5:1" output.mp4

注意,boxblur过滤器会增加视频处理的时间和资源消耗,特别是当模糊半径较大时。

要使用boxblur指定区域,你需要使用crop和overlay过滤器与boxblur一起使用。以下是一个示例:

ffmpeg -i input.mp4 -filter_complex "[0:v]crop=200:200:100:100,boxblur=11[fg];[0:v][fg]overlay=100:100[v]" -map“[v]”output.mp4
文章版权声明:除非注明,否则均为十八码原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
评论列表 (暂无评论,205人围观)

还没有评论,来说两句吧...

目录[+]