本文将详细讲解如何使用FFmpeg操作视频滤镜,包括添加水印文字与图片的方法,以及多宫格、音视频处理等高级技巧。通过简单的命令行操作,即使是新手也能轻松制作出炫酷的视频效果。

# FFmpeg 操作视频滤镜效果,添加水印文字与图片的方法

对视频进行滤镜处理能制作出各种炫酷的效果,非常吸引人。本文将带你学习如何使用FFmpeg命令行来操作制作视频的滤镜效果,包括添加水印文字与图片等实用技巧。

## 滤镜参数的基本格式

在FFmpeg中,滤镜参数的排列格式通常如下:

“`
输入流或标记名 滤镜参数 临时标记名 输入流或标记名 滤镜参数 临时标记名
“`

## 添加图片水印

我们可以通过`filter_complex`命令将图片添加到视频的指定位置。以下是一个示例,将图片缩放后放在视频的左上角:

“`bash
ffmpeg -i input.mp4 -i logo.png -filter_complex “[1:v]scale=176:144[logo];[0:v][logo]overlay=x=0:y=0” output.mp4
“`

## 添加文字水印

使用`drawtext`滤镜可以轻松添加文字水印。以下是一些示例:

“`bash
# 添加红色文字水印
ffmpeg -i input.mp4 -vf “drawtext=fontsize=30:fontfile=/System/Library/Fonts/SFNSText.ttf:text=Lyman:fontcolor=red:x=20:y=35” output.mp4
“`

“`bash
# 添加带背景框的文字水印
ffmpeg -i input.mp4 -vf “drawtext=fontsize=30:fontfile=/System/Library/Fonts/SFNSText.ttf:text=Lyman:fontcolor=red:box=1:boxcolor=yellow:x=20:y=35” output.mp4
“`

“`bash
# 添加动态时间戳
ffmpeg -i input.mp4 -vf “drawtext=fontsize=30:fontfile=/System/Library/Fonts/SFNSText.ttf:text=%{localtime:%Y-%m-%d %H-%M-%S}:fontcolor=red:box=1:boxcolor=yellow:x=20:y=35” output.mp4
“`

“`bash
# 条件添加水印
ffmpeg -i input.mp4 -vf “drawtext=fontsize=30:fontfile=/System/Library/Fonts/SFNSText.ttf:text=%{localtime:%Y-%m-%d %H-%M-%S}:fontcolor=red:enable=lt(mod(t,3),1):box=1:boxcolor=yellow:x=20:y=35” output.mp4
“`

## 使用`movie`滤镜添加图片水印

`movie`滤镜可以更灵活地添加图片水印。以下是一个示例:

“`bash
ffmpeg -i input.mp4 -vf “movie=logo.png[color];[in][color]overlay=30:10[out]” output.mp4
“`

注意:确保输入视频路径为绝对路径,而图片路径可以使用相对路径。

## 多宫格视频处理

通过`filter_complex`命令,我们可以将视频分割成多个宫格。以下是一个示例,将一个视频分割成四宫格:

“`bash
ffmpeg -re -i ~/Movies/i_am_you.mp4 -re -i ~/Movies/i_am_you.mp4 -re -i ~/Movies/i_am_you.mp4 -re -i ~/Movies/i_am_you.mp4 -filter_complex “nullsrc=size=640×480 [base];[0:v] setpts=PTS-STARTPTS,scale=320×240 [upperleft];[1:v] setpts=PTS-STARTPTS,scale=320×240 [upperright];[2:v] setpts=PTS-STARTPTS,scale=320×240 [lowerleft];[3:v] setpts=PTS-STARTPTS,scale=320×240 [lowerright];[base][upperleft] overlay=shortest=1[tmp1];[tmp1][upperright] overlay=shortest=1:x=320 [tmp2];[tmp2][lowerleft]overlay=shortest=1:y=240 [tmp3];[tmp3][lowerright] overlay=shortest=1:x=320:y=240” -c:v libx264 ~/Movies/output.flv
“`

## 音频流滤镜处理

FFmpeg不仅支持视频滤镜,还可以对音频进行处理。以下是一些常见的音频处理技巧:

### 双声道合并单声道

“`bash
ffmpeg -i input.mp4 -ac 1 output.aac
“`

### 双声道提取

“`bash
ffmpeg -i input.aac -map_channel 0.0.0 left.aac -map_channel 0.0.1 right.aac
“`

### 双声道转双音频流

“`bash
ffmpeg -i input.aac -filter_complex channelsplit=channel_layout=stereo output.mka
“`

### 单声道转双声道

“`bash
ffmpeg -i left.aac -ac 2 output.m4a
“`

### 两个音频源合并双声道

“`bash
ffmpeg -i left.aac -i right.aac -filter_complex “[0:a][1:a] amerge=inputs=2[aout]” -map “[aout]” output.mka
“`

## 音频音量获取

“`bash
ffmpeg -i output.wav -filter_complex volumedetect -c:v copy -f null /dev/null
“`

## 绘制音频波形图

“`bash
ffmpeg -i output.wav -filter_complex “showwavespic=s=640×120” -frames:v 1 output.png
“`

## 为视频加字幕

### ASS字幕流写入视频流

“`bash
ffmpeg -i input.mp4 -vf ass=t1.ass -f mp4 output.mp4
“`

### ASS字幕流写入封装容器

“`bash
ffmpeg -i input.mp4 -i t1.ass -acodec copy -vcodec copy -scodec copy output.mkv
“`

## 视频抠图合并

“`bash
ffmpeg -i input.mp4 -i input_green.mp4 -filter_complex “[1:v]chromakey=Green:0.1:0.2[ckout];[0:v][ckout]overlay[out]” -map “[out]” output.mp4
“`

## 3D视频处理

“`bash
ffplay -vf “stereo3d=sbsl:aybd” input.mp4
“`

## 定时视频截图

### 使用`vframe`截取指定位置图片

“`bash
ffmpeg -i input.flv -ss 00:00:7.423 -vframes 1 output.png
“`

### 使用`fps`滤镜定时获取图片

“`bash
ffmpeg -i input.flv -vf fps=1 out%d.png
“`

### 安装关键帧截取图片

“`bash
ffmpeg -i input.flv -vf “select=’eq(pict_type,PICT_TYPE_I)’ -vsync vfr thumb%04d.png
“`

## 生成测试元数据

“`bash
ffmpeg -re -f lavfi -i abuffer=sample_rate=44100:sample_fmt=s16p:channel_layout=stereo -acodec aac -y output.aac
“`

“`bash
ffmpeg -re -f lavfi -i testsrc=duration=5.3:size=qcif:rate=25 -vcodec libx264 -r:v 25 output.mp4
“`

## 音视频倍速处理

### 音频倍速处理

“`bash
ffmpeg -i input.wav -filter_complex “atempo=tempo=0.5” -acodec aac output.aac
“`

“`bash
ffmpeg -i input.wav -filter_complex “atempo=tempo=2.0” -acodec aac output.aac
“`

### 视频倍速处理

“`bash
ffmpeg -re -i input.mp4 -filter_complex “setpts=PTS2” output.mp4
“`

“`bash
ffmpeg -i input.mp4 -filter_complex “setpts=PTS/2” output.mp4
“`

## 总结

通过FFmpeg,我们可以轻松地进行视频滤镜处理,添加水印文字与图片,以及进行多宫格、音视频处理等高级操作。希望本文能帮助你更好地利用FFmpeg进行视频编辑。

{1、FFmpeg, 2、视频滤镜, 3、水印文字, 4、水印图片, 5、音视频处理, 6、多宫格, 7、倍速处理, 8、定时截图, 9、测试元数据}


本文是基于《FFmpeg 操作视频滤镜效果,添加水印文字与图片的方法》的AI重写版本

免责声明:本站为个人博客,博客所发布的一切修改补丁、注册机和注册信息及软件的文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关,您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。 访问和下载本站内容,说明您已同意上述条款。本站为非盈利性站点,VIP功能仅仅作为用户喜欢本站捐赠打赏功能,本站不贩卖软件,所有内容不作为商业行为。