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