背景
下午看到群里有个小伙伴问,如何横向拼接同一个视频2次,类似于复制
既然是处理视频,我就想到了ffmpeg。查阅文档后,发现可以利用的组合滤镜功能(filter_complex)实现,特意记录下来
ffmpeg介绍
FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序,采用LGPL或GPL许可证。
FFmpeg提供了录制、转换以及流化音视频的完整解决方案,拥有非常强大的功能,包括视频采集功能、视频格式转换、视频抓图、给视频加水印等。
本文仅仅是组合滤镜功能(filter_complex)的简单应用
准备工作
到ffmpeg官网(http://www.ffmpeg.org/download.html)下载编译后的可执行文件,解压至ffmpeg目录
命令
代码语言:text复制cd ./ffmpeg
./ffmpeg -i input.mp4 -i input.mp4 -i input.mp4 -filter_complex "[0:v]pad=iw*3:ih*1[a];[a][1:v]overlay=w[b];[b][2:v]overlay=w*2" out.mp4
解析
-i input.mp4
与要处理的文件(输入流)-filter_complex
滤镜功能[0:v]pad=iw*3:ih*1[a]
将第一个视频宽度*3,高度保持不变,该过滤器命名为a[a][1:v]overlay=w[b]
给过滤器a叠加滤镜,将视频2覆盖在a上,偏移位置为1倍视频宽度,该过滤器命名为b[b][2:v]overlay=w*2
给过滤器b叠加滤镜,将视频3覆盖在b上,偏移位置为2倍视频宽度out.mp4
输出的文件名
效果
后记
使用滤镜功能还可以实现添加水印的功能,思路是把第二个视频文件替换成图片文件,然后设置好对应的偏移位置即可。还有更多玩法,可以参阅ffmpeg官方文档。
笔者为腾讯云TDP成员,点击了解腾讯云TDP
博文链接:https://nongxue.top/p/daima/98.html