用AVFilter将视频上半部分镜像到下半部分

用AVFilter将视频上半部分镜像到下半部分

Content #

滤镜处理将输入的视频切割成了两部分流,一部分流抛给crop滤镜与vflip滤镜处理模块进行操作,另一部分保持原样,当crop滤镜与vflip滤镜处理操作完成之后,将流合并到原有的overlay图层中,并显示在最上面一层,输出新的视频。对应的命令行如下:

ffmpeg -i INPUT -vf "split [main][tmp]; [tmp] crop=iw:ih/2:0:0, vflip [flip]; [main][flip] overlay=0:H/2" OUTPUT

生成的视频结果是保留视频的上半部分,同时上半部分会镜像到视频的下半部分,二者合成之后作为输出视频。

Filter规则如下:● 相同的Filter线性链之间用逗号分隔● 不同的Filter线性链之间用分号分隔

在以上示例中,crop与vflip使用的是同一个滤镜处理的线性链,split滤镜和 overlay滤镜使用的是另外一个线性链,一个线性链与另一个线性链汇合时是通过方括号“[]”括起来的标签进行标示的。在这个例子中,两个流处理后是通过 [main]与[flip]进行关联汇合的。

split滤镜将分割后的视频流的第二部分打上标签[tmp],通过crop滤镜对该部分流进行处理,然后进行纵坐标调换操作,打上标签[flip],然后将[main]标签与 [flip]标签进行合并,[flip]标签的视频流从视频的左边最中间的位置开始显示,这样就出现了镜像效果。

From #

FFmpeg从入门到精通