本文详细介绍了如何使用FFmpeg操作视频滤镜效果,包括添加水印文字与图片的方法,以及视频多宫格、音频流滤镜、字幕添加等高级功能。通过实例演示了滤镜参数的排列格式和具体应用,帮助读者快速掌握FFmpeg视频处理技巧。

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

对视频进行滤镜处理可以创造出各种炫酷的效果,提升视频的观赏性。本文将带你学习如何使用FFmpeg命令行工具来操作和制作视频滤镜效果,重点关注添加水印文字与图片的方法。

## FFmpeg滤镜基础

### 滤镜参数排列格式

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

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

例如,将图片缩放并叠加到视频上:

“`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:x=20:y=35” output.mp4
“`

### 文字样式调整

– `fontsize`:设置字体大小
– `fontfile`:指定字体路径
– `fontcolor`:设置文字颜色
– `box`:添加背景框
– `boxcolor`:设置背景框颜色

“`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
“`

### 条件显示文字

通过`enable`参数控制文字显示条件:

“`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`滤镜可以添加图片水印,比`overlay`滤镜更灵活。

### 图片水印基本用法

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

### 键色处理

添加键色处理使背景透明:

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

## 视频多宫格处理

FFmpeg支持将视频分割为多个宫格,例如制作3D视频。

### 多宫格示例

“`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
“`

## 绘制音频波形图

使用`showwavespic`滤镜可以绘制音频波形图:

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

### 分离声道绘制

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

## 添加字幕

FFmpeg支持多种字幕格式,可以方便地添加字幕。

### 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
“`

## 视频抠图与背景合并

使用`chromakey`滤镜可以实现视频抠图与背景合并:

“`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视频处理

使用`stereo3d`滤镜可以将左右眼视频转换为红蓝眼视频:

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

## 定时视频截图

### 按时间截取

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

### 定率截取

“`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
“`

## 生成测试元数据

使用`lavfi`设备可以生成测试音视频数据:

“`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
“`

## 音视频倍速处理

### 音频倍速处理

使用`atempo`滤镜调整音频速度:

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

### 视频倍速处理

使用`setpts`滤镜调整视频速度:

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

## 总结

FFmpeg功能强大,不仅可以处理视频滤镜效果,还能进行水印添加、字幕处理、音频处理等多种操作。掌握这些技巧,可以大大提升视频制作效率和质量。

{1、FFmpeg视频处理, 2、视频滤镜, 3、添加水印, 4、文字水印, 5、图片水印, 6、音频处理, 7、字幕添加, 8、视频抠图, 9、3D视频, 10、视频截图}


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

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