使用 FFMPEG 将具有缩放 + 旋转的图像添加到视频叠加层?
Add image with scale + rotation to video overlay with FFMPEG?
我想使用参数向视频添加叠加图像
1: w:h --> 是视频中图像的宽度和高度
2: r --> 弧度是图像的旋转
3: center (x,y) --> 是视频中图像的中心点
这是我的 FFMPEG 命令:
-i video.mp4 -i image.png filter_complex [1:v]scale=w:h[scale];[scale]rotate=r:ow=iw:oh=ih[rotate];[0:v][rotate]overlay=x-(w/2):y-(h/2)
但是结果不正确。它只适用于 scale=1 和 rotate=0 radian
我该怎么做?
使用
[1:v]scale=w:h,pad=iw+4:ih+4:black@0[scale];[scale]rotate=r:ow='rotw(r)':oh='roth(r)'[rotate]
在旋转之前向图像添加了一点透明填充。这是因为旋转滤镜将用输入的边框像素颜色填充 canvas 中的空白。此外,必须调整输出大小以适应旋转后的整个图像。请参阅旋转过滤器的 docs。
用于在视频上旋转、缩放、叠加和设置图像持续时间的 Ffmpeg 命令
ffmpeg -i input.mp4 -i inputImg.png -filter_complex \"[1:v] rotate=90:c=none:ow=rotw(iw):oh=roth(ih) [rotate];[rotate]scale=100:-1[scale];[0:v][scale] overlay=0:0:enable='between(t,0,2)'[out]\" -map [out] -pix_fmt yuv420p -c:a copy output.mp4
我想使用参数向视频添加叠加图像
1: w:h --> 是视频中图像的宽度和高度
2: r --> 弧度是图像的旋转
3: center (x,y) --> 是视频中图像的中心点
这是我的 FFMPEG 命令:
-i video.mp4 -i image.png filter_complex [1:v]scale=w:h[scale];[scale]rotate=r:ow=iw:oh=ih[rotate];[0:v][rotate]overlay=x-(w/2):y-(h/2)
但是结果不正确。它只适用于 scale=1 和 rotate=0 radian
我该怎么做?
使用
[1:v]scale=w:h,pad=iw+4:ih+4:black@0[scale];[scale]rotate=r:ow='rotw(r)':oh='roth(r)'[rotate]
在旋转之前向图像添加了一点透明填充。这是因为旋转滤镜将用输入的边框像素颜色填充 canvas 中的空白。此外,必须调整输出大小以适应旋转后的整个图像。请参阅旋转过滤器的 docs。
用于在视频上旋转、缩放、叠加和设置图像持续时间的 Ffmpeg 命令
ffmpeg -i input.mp4 -i inputImg.png -filter_complex \"[1:v] rotate=90:c=none:ow=rotw(iw):oh=roth(ih) [rotate];[rotate]scale=100:-1[scale];[0:v][scale] overlay=0:0:enable='between(t,0,2)'[out]\" -map [out] -pix_fmt yuv420p -c:a copy output.mp4