ffmpeg - Цвет шрифта текста изменяется (исчезает) из-за альфы (я думаю). Есть ли возможность избежать такого поведения? - PullRequest
0 голосов
/ 13 мая 2019

Я использую следующую команду

    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

Я думаю, что проблема в альфе, но я не знаю, как этого избежать.

1 Ответ

0 голосов
/ 13 мая 2019

Да, вы также используете текстовый слой как альфа, и, поскольку текст не является чисто белым, он не будет полностью непрозрачным.Когда я первоначально разместил команду в вашем 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...