我想从输入视频中裁剪一个区域,然后将该区域旋转 90 度四次。输出视频应如下所示:
这是之前的图像:
这是残像:
提前致谢!
答案1
使用万花筒效果ffmpeg
示例命令
ffmpeg -i video.mkv -loop 1 -i mask.png -filter_complex \
"[1:v]alphaextract,split[a1][a2]; \
[0:v][a1]alphamerge,transpose=1[e]; \
[0:v][a2]alphamerge,transpose=2[w]; \
[0:v]vflip,hflip[s]; \
[0:v]pad=ih*2:ih*2:x=(ow-iw)/2[n]; \
[n][s]overlay=W/2-w/2:W/2[bg]; \
[bg][e]overlay=W/2:H/2-h/2[bg2]; \
[bg2][w]overlay=0:H/2-h/2" \
-codec:a copy output.mkv
使用 FFmpeg 过滤器
alphaextract
和alphamerge
对于 alpha 分量split
制作 alpha 组件的多个副本transpose
/vflip
/hflip
或您喜欢的任意类似过滤器的组合pad
使背景成为“画布”overlay
将每个视频放在画布上
笔记
使用最近的
ffmpeg
。要么下载 Linux 版本ffmpeg
或按照步骤编译指南ffmpeg
。您需要制作一张包含 alpha mask 的图片。它需要与视频输入的帧大小相同,因此如果
video.mkv
是 1920x1080,那么mask.png
也需要是 1920x1080。您可以下载 alpha 蒙版从这个例子中。split
之所以使用,是因为过滤器图必须具有唯一的边,这意味着每个标签都连接两个“节点”或过滤器。因此,如果您想将过滤器的输出发送到两个地方,就必须拆分过滤器的输出。滤镜的黑色背景颜色
pad
在角落处可见。crop
如果您愿意,可以使用滤镜将其移除。音频是流已复制而不是重新编码。
查看FFmpeg 和 x264 编码指南以获取有关控制输出质量的更多信息。