4、ffmpeg系列学习——FFmpeg的图像处理

  1. FFmpeg的图像处理命令

  1. 调整图像大小

ffmpeg -i input.jpg -vf scale=640:360 output.jpg

上述命令将输入图像 input.jpg 调整为分辨率为 640x360 的输出图像 output.jpg。

  1. 图像裁剪

ffmpeg -i input.jpg -vf crop=640:360:80:60 output.jpg

上述命令将输入图像 input.jpg 裁剪为宽度 640,高度 360,x 轴偏移量为 80,y 轴偏移量为 60 的输出图像 output.jpg。

  1. 图像旋转

ffmpeg -i input.jpg -vf "transpose=1" output.jpg

上述命令将输入图像 input.jpg 逆时针旋转 90 度,输出图像 output.jpg。

  1. 图像加水印

ffmpeg -i input.jpg -i watermark.png -filter_complex "overlay=10:10" output.jpg

上述命令将输入图像 input.jpg 加上水印图像 watermark.png,水印位置为 (10,10),输出图像 output.jpg。

  1. 图像模糊

ffmpeg -i input.jpg -filter_complex "boxblur=5:1" output.jpg

上述命令将输入图像 input.jpg 进行模糊处理,模糊程度为 5,模糊类型为 boxblur,输出图像 output.jpg。

  1. 图像去噪

ffmpeg -i input.jpg -filter_complex "removegrain=20" output.jpg

上述命令将输入图像 input.jpg 进行去噪处理,去噪程度为 20,输出图像 output.jpg。

  1. 图像缩略图

ffmpeg -i input.jpg -vf "thumbnail,scale=640:360" -frames:v 1 output.jpg

上述命令将输入图像 input.jpg 转换为分辨率为 640x360 的缩略图,输出图像 output.jpg。

  1. 视频截图

视频截图是将视频中的某一帧或多帧图像提取出来,生成图片文件的过程。在 FFmpeg 中,使用 -ss 参数指定截取的时间点,使用 -vframes 参数指定截取的帧数,使用 -r 参数指定帧率。下面是一些常见的视频截图操作:

  1. 截取视频的第一帧作为封面图:

ffmpeg -i input.mp4 -ss 00:00:00.000 -vframes 1 output.jpg
  1. 截取视频中的一帧作为截图:

ffmpeg -i input.mp4 -ss 00:00:10.000 -vframes 1 output.jpg

其中 -ss 参数指定截取视频的时间点,-vframes 1 指定只截取一帧图像,output.jpg 指定输出文件名和格式。

  1. 截取视频中的多帧图像:

ffmpeg -i input.mp4 -ss 00:00:10.000 -t 5 -r 1 -f image2 output_%03d.jpg

其中 -ss 参数指定截取视频的起始时间点,-t 参数指定截取视频的时长,-r 1 指定每秒截取一帧,-f image2 指定输出为图片格式,output_%03d.jpg 指定输出文件名,%03d 表示输出文件名中的数字以三位数显示,逐个递增。

  1. 截取视频中的某个时间段内的多帧图像:

ffmpeg -i input.mp4 -ss 00:00:10.000 -t 5 -r 1 -f image2 output_%03d.jpg

其中 -ss 参数指定截取视频的起始时间点,-t 参数指定截取视频的时长,-r 1 指定每秒截取一帧,-f image2 指定输出为图片格式,output_%03d.jpg 指定输出文件名,%03d 表示输出文件名中的数字以三位数显示,逐个递增。

  1. 截取视频中的关键帧作为截图:

ffmpeg -i input.mp4 -vf select="eq(pict_type\,I)" -vframes 1 output.jpg

其中 -vf select="eq(pict_type\,I)" 参数指定选择视频中的关键帧作为截图,-vframes 1 指定只截取一帧图像,output.jpg 指定输出文件名和格式。

  1. 视频水印添加

在视频中添加水印可以保护版权,防止他人盗用或修改视频。FFmpeg提供了多种方式来添加水印,下面是一些常用的命令示例:

  1. 添加文本水印:

ffmpeg -i input.mp4 -vf "drawtext=fontfile=Arial.ttf:text='My Watermark':fontcolor=white:fontsize=24:x=10:y=10" output.mp4

这个命令会在输入视频的左上角添加一个白色的"My Watermark"文本水印。

  1. 添加图片水印

ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=10:10" output.mp4

这个命令将"watermark.png"图片叠加在输入视频的左上角。

  1. 添加透明图片水印:

ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=10:10:alpha=0.5" output.mp4

这个命令与前一个命令类似,但是"watermark.png"图片有50%的透明度。

  1. 添加滚动文本水印:

ffmpeg -i input.mp4 -vf "drawtext=fontfile=Arial.ttf:text='My Watermark':fontcolor=white:fontsize=24:x=w-tw-10:y=h-th-10:enable='between(t,5,15)'" output.mp4

这个命令将"My Watermark"文本水印添加在输入视频的右下角,从第5秒开始到第15秒结束,而且水印是在这期间滚动的。

这些命令只是FFmpeg添加水印的众多方法中的一部分。通过这些命令的示例,我们可以了解如何添加文本水印、图片水印以及一些高级选项,如水印位置、透明度和滚动文本水印等。

  1. 视频特效添加

在 FFmpeg 中,我们可以使用滤镜来添加各种视频特效。下面简单介绍几个常见的视频特效:

  1. 旋转特效

使用 rotate 滤镜可以对视频进行旋转。比如以下命令将视频逆时针旋转90度:

ffmpeg -i input.mp4 -vf "rotate=PI/2" output.mp4
  1. 镜像特效

使用 hflip 和 vflip 滤镜可以实现视频水平和垂直镜像。比如以下命令将视频水平镜像:

ffmpeg -i input.mp4 -vf "hflip" output.mp4
  1. 模糊特效

使用 boxblur 滤镜可以对视频进行模糊处理。比如以下命令对视频进行模糊处理:

ffmpeg -i input.mp4 -vf "boxblur=10:2" output.mp4
  1. 缩放特效

使用 scale 滤镜可以对视频进行缩放。比如以下命令将视频缩小一半:

ffmpeg -i input.mp4 -vf "scale=iw/2:ih/2" output.mp4
  1. 灰度特效

使用 colorchannelmixer 滤镜可以将视频转换为灰度图像。比如以下命令将视频转换为灰度图像:

ffmpeg -i input.mp4 -vf "colorchannelmixer=0.3:0.4:0.3:0:0.3:0.4:0.3:0:0.3:0.4:0.3" output.mp4

在 colorchannelmixer 滤镜中,第一行表示红色通道、绿色通道、蓝色通道的转换系数,第二行表示常数项。

猜你喜欢

转载自blog.csdn.net/ayou_llf/article/details/129218051