我正在使用以下命令
ffmpeg -i ~/Desktop/input.mp4 -filter_complex "color=black:100x100[c];\
[c][0]scale2ref[ct][mv]; \
[ct]setsar=1,split=1[t1]; \
[t1]drawtext=text='Test Text 1':fontsize=36:fontcolor=#13348b\
,split[text1][alpha1]; \
[text1][alpha1]alphamerge,rotate=30:ow=rotw(30)\
:oh=roth(30):c=black@0[txta1]; \
[mv][txta1]overlay=x='min(0,-H*sin(30))+500':\
y='min(0,W*sin(30))+350':shortest=1" \
~/Desktop/result.mp4 -y
我认为alpha是问题所在,但我不知道如何避免。
答案 0 :(得分:0)
是的,您也将文本图层用作Alpha,并且由于文本不是纯白色,因此不会完全不透明。当我最初将命令发布到您的Q中时,drawtext过滤器无法在透明画布上绘制文本并保留透明性。此后已得到纠正。因此,该命令现在更加简单。
ffmpeg -i ~/Desktop/input.mp4 -filter_complex \
"color=black@0:100x100,format=yuva444p[c]; \
[c][0]scale2ref[ct][mv]; \
[ct]setsar=1,drawtext=text='Test Text 1':fontsize=36:fontcolor=#13348b, \
rotate=30:ow=rotw(30):oh=roth(30):c=black@0[txta1]; \
[mv][txta1]overlay=x='min(0,-H*sin(30))+500':\y='min(0,W*sin(30))+350':shortest=1" \
~/Desktop/result.mp4 -y