1.去水印delogo

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

2.用颜色覆盖指定区域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过滤器。

3.使用图片覆盖指定区域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)'指定了图片显示的时间范围。

4.使指定区域变模糊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
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐