gpt4 book ai didi

FFmpeg 过滤器围绕点旋转图像

转载 作者:行者123 更新时间:2023-12-02 22:08:28 24 4
gpt4 key购买 nike

有谁知道如何使用 FFmpeg -vf 旋转将图像旋转到其起点(左上角)而不是中心点(默认)?

在此示例中,我尝试将红色方形图像 (test_sq.png) 从 in.png 上的起点旋转 30 度放置在坐标 423:259 处,生成 out.png

这是我的命令:

ffmpeg -y -i in.png -pix_fmt bgra -strict experimental -vf movie=test_sq.png scale=279:279 rotate=30*PI/180:c=none:oh=ow [sticker]; [in][sticker] overlay=423:259 [out] -s 1280x720 out.png

将其可视化:

Results

正如你所看到的,它从中心点旋转,并且还剪切了原始图像,这不是很好。有人对如何实现我的需要有建议或想法吗?

最佳答案

旋转过滤器中的输出宽度和高度将初始化为输入宽/高,并且不会自动计算以显示旋转后的整个图像。使用这个代替,

ffmpeg -y -i in.png -i test_sq.png  \
-filter_complex "[1]scale=279:279,setsar=1,rotate=PI/6:c=none:ow=rotw(PI/6):oh=roth(PI/6)[s];
[0][s]overlay=423-w*sin(PI/6)/(sin(PI/6)+cos(PI/6)):259,scale=hd720[out]" \
-map "[out]"-pix_fmt bgra out.png
<小时/>

对于非方形图像,

ffmpeg -y -i in.png -i test_sq.png  \
-filter_complex "[1]scale=279:279,setsar=1,rotate=PI/6:c=none:ow=rotw(PI/6):oh=roth(PI/6)[s];
[0][s]overlay=423-ih*sin(PI/6):259,scale=hd720[out]" \
-map "[out]"-pix_fmt bgra out.png

(您必须手动提供 ih 的值(原始图像的高度)。

<小时/>

对于非方形图像,负旋转

ffmpeg -y -i in.png -i test_sq.png  \
-filter_complex "[1]scale=279:279,setsar=1,rotate=-PI/6:c=none:ow=rotw(-PI/6):oh=roth(-PI/6)[s];
[0][s]overlay=423:259-iw*sin(PI/6),scale=hd720[out]" \
-map "[out]"-pix_fmt bgra out.png

(您必须手动提供 iw 的值(原始图像的宽度)。

对于没有内置 Alpha 的图像,请在旋转 滤镜之前插入 format=bgra

关于FFmpeg 过滤器围绕点旋转图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36433676/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com