我正在使用ffmpeg
在电影上叠加图片。要求是将图片旋转任意角度。使用filter_complex
,我现在可以叠加旋转的图片。但是,图片的输出区域填充为黑色,不透明。我检查了文档,据说可以指定填充颜色,根据这,但我没能做到。有什么想法吗?
我在这里复制我的命令行:
./ffmpeg -i mersyvideo.mp4 -i avatar.jpg -filter_complex "[1:v] rotate=-30*PI/180:c=black@'0x00':ow=rotw(iw):oh=roth(ih) [rotate];[0:v][rotate] overlay=40:10" -codec:a copy output/overlayavatar.mp4
答案1
要用透明填充未覆盖的区域,请使用以下选项c=none
:
ffmpeg \
-i mersyvideo.mp4 \
-i avatar.jpg \
-filter_complex "
[1:v]rotate=-30*PI/180:c=none:ow=rotw(iw):oh=roth(ih)[rotate];
[0:v][rotate]overlay=40:10
" \
-codec:a copy \
output/overlayavatar.mp4
查看rotate
过滤帮助:
fillcolor
,c
设置用于填充未被旋转图像覆盖的输出区域的颜色。有关此选项的一般语法,请查看 ffmpeg-utils 手册中的 (ffmpeg-utils)“颜色”部分。如果选择了特殊值“无”,则不会打印任何背景(例如,如果从不显示背景,则很有用)。
默认值为“黑色”。