文章目录
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
:字体颜色(如white
、black
、red
等)。x
和y
:设置文字的坐标位置。box
和boxcolor
:为文字加一个背景框,避免文字和背景颜色相近。
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-10
和H-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 中执行几乎所有常见的视频编辑任务,所有这些都可以通过简单的命令行实现,无需复杂的图形界面操作。