本文详细介绍了如何使用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重写版本
评论(0)