ffmpeg常见命令3

发布于:2025-04-05 ⋅ 阅读:(8) ⋅ 点赞:(0)


FFmpeg 提供了强大的视频过滤器功能,允许用户在视频上应用各种效果。以下是一些常见的过滤器,涵盖了文字水印、图片水印、画中画(PIP)以及多宫格效果。

1. 文字水印(Text Watermark)

文字水印是指在视频中添加文本作为水印。可以使用 FFmpeg 的 drawtext 过滤器来实现。

示例命令:
ffmpeg -i input_video.mp4 -vf "drawtext=text='Watermark':fontfile=/path/to/font.ttf:fontsize=24:fontcolor=white:x=10:y=10" output_video.mp4
  • -vf "drawtext=...":使用 drawtext 过滤器添加文字水印。
  • text='Watermark':设置水印的文本内容为 “Watermark”。
  • fontfile=/path/to/font.ttf:指定字体文件的路径(如果没有系统字体,可以提供字体文件)。
  • fontsize=24:设置文字大小。
  • fontcolor=white:设置文字颜色为白色。
  • x=10:y=10:设置文字在视频中的位置,这里是距离左上角 10 像素。

可以根据需要调整字体、颜色、大小和位置等参数。

更多选项:
  • text:水印的文本内容。
  • fontsize:字体大小。
  • fontcolor:字体颜色(如 whiteblackred 等)。
  • xy:设置文字的坐标位置。
  • boxboxcolor:为文字加一个背景框,避免文字和背景颜色相近。

2. 图片水印(Image Watermark)

图片水印是将一张图片作为水印叠加到视频上。FFmpeg 使用 overlay 过滤器来实现图片水印。

示例命令:
ffmpeg -i input_video.mp4 -i watermark.png -filter_complex "overlay=10:10" output_video.mp4
  • -i input_video.mp4:输入视频文件。
  • -i watermark.png:输入水印图片(例如 PNG 文件)。
  • -filter_complex "overlay=10:10":使用 overlay 过滤器将水印图片添加到视频上。10:10 表示水印图片的左上角位置,距离视频左上角 10 像素。
更多选项:
  • overlay=x:y:设置水印图像的坐标位置。
  • shortest=1:如果水印图像的时长比视频短,使用 shortest 确保视频与水印图像的时长一致。

3. 画中画(Picture-in-Picture, PIP)

画中画效果是指在视频中叠加另一个小视频,通常用来展示多个视频源。可以通过 overlay 过滤器实现画中画效果。

示例命令:
ffmpeg -i background_video.mp4 -i pip_video.mp4 -filter_complex "[0][1]overlay=W-w-10:H-h-10" output_video.mp4
  • -i background_video.mp4:背景视频文件。
  • -i pip_video.mp4:要叠加的小视频文件(PIP 视频)。
  • -filter_complex "[0][1]overlay=W-w-10:H-h-10":将小视频(PIP 视频)叠加到背景视频上。W-w-10H-h-10 表示将 PIP 视频放置在背景视频的右下角,距离边缘 10 像素。
更多选项:
  • overlay=x:y:设置小视频的位置,可以使用表达式来动态计算位置,例如 W-w-10 表示小视频的右下角。
  • scale:调整小视频的大小,例如 scale=320:240

4. 多宫格效果(Grid Effect)

多宫格效果是指将多个视频显示在一个画面中,通常用于展示多个视频源(例如 2x2 的网格)。可以使用 tile 过滤器来实现多宫格效果。

示例命令(2x2 网格):
ffmpeg -i video1.mp4 -i video2.mp4 -i video3.mp4 -i video4.mp4 -filter_complex "tile=2x2" output_video.mp4
  • -i video1.mp4 -i video2.mp4 -i video3.mp4 -i video4.mp4:输入 4 个视频文件。
  • -filter_complex "tile=2x2":使用 tile 过滤器将 4 个视频文件按 2x2 网格的形式排列。
更多选项:
  • tile=w:h:设置网格的列数和行数,w 为列数,h 为行数。例如,tile=3x3 会生成一个 3x3 的网格。
  • pad:用于调整视频的间隔和填充背景色。

综合示例:文字水印 + 图片水印 + 画中画

你可以将多种效果组合在一起,应用到一个视频文件上。

示例命令:
ffmpeg -i input_video.mp4 -i watermark.png -i pip_video.mp4 -vf "drawtext=text='Watermark':fontfile=/path/to/font.ttf:fontsize=24:fontcolor=white:x=10:y=10" -filter_complex "[0][1]overlay=10:10[v];[v][2]overlay=W-w-10:H-h-10" output_video.mp4
  • -vf "drawtext=...":添加文字水印。
  • -filter_complex "[0][1]overlay=10:10[v]":将图片水印叠加到视频上。
  • -filter_complex "[v][2]overlay=W-w-10:H-h-10":将画中画视频叠加到视频的右下角。

总结

FFmpeg 提供的过滤器系统非常灵活和强大,能够帮助你对视频进行多种处理,例如添加文字水印、图片水印、画中画以及多宫格效果等。通过掌握这些过滤器,你可以在 FFmpeg 中执行几乎所有常见的视频编辑任务,所有这些都可以通过简单的命令行实现,无需复杂的图形界面操作。


网站公告

今日签到

点亮在社区的每一天
去签到