[FFmpeg-user] Weird results with drawtext

Michael Koch astroelectronic at t-online.de
Sat Sep 18 20:09:55 EEST 2021


Am 18.09.2021 um 18:51 schrieb Michael Koch:
> Am 18.09.2021 um 18:22 schrieb Michael Koch:
>> Am 18.09.2021 um 18:07 schrieb Cecil Westerhof via ffmpeg-user:
>>> I have several of the following (simplified):
>>>      drawtext=
>>>         enable     = 'between(t, 105, 115)':
>>>         text       = 'speaker':
>>>         y          = main_h - (text_h * 4),
>>>      drawtext=
>>>         enable     = 'between(t, 105, 115)':
>>>         text       = 'subject':
>>>         y          = main_h - (text_h * 2.2),
>>>
>>> I have been carefully tweaking to get them on the correct place.
>>> But when I was satisfied and generated all eight places where I wanted
>>> to have them the placement of the speaker and subject text is on
>>> different heights. Sometimes one or the other is different, sometimes
>>> both and sometimes they are the same.
>>>
>>> Is this a bug, or am I doing something wrong?
>>>
>>
>> The content of the variable "text_h" depends on which characters you 
>> are printing.
>>
>> If you don't use "text_h", then the characters "a" and "q" are 
>> printed at the same height:
>> ffmpeg -f lavfi -i color=yellow -lavfi 
>> drawtext=text='a':x=20:y=50,drawtext=text='q':x=40:y=50 -frames 1 -y 
>> out1.png
>>
>> But if you use "text_h", then they are printed at different heights:
>> ffmpeg -f lavfi -i color=yellow -lavfi 
>> drawtext=text='a':x=20:y=50-text_h,drawtext=text='q':x=40:y=50-text_h 
>> -frames 1 -y out2.png
>
> It gets even worse when you try to print apostrophes. It's impossible 
> to print all characters at the same height.
>
> It doesn't wok without text_h:
>
> ffmpeg -f lavfi -i color=yellow -lavfi 
> drawtext=text='a_':x=20:y=50,drawtext=text='_gG':x=40:y=50,drawtext=text='``':x=60:y=50 
> -frames 1 -y out1.png
>
> And it also doesn't work with text_h subtracted:
>
> ffmpeg -f lavfi -i color=yellow -lavfi 
> drawtext=text='a_':x=20:y=50-text_h,drawtext=text='_gG':x=40:y=50-text_h,drawtext=text='``':x=60:y=50-text_h 
> -frames 1 -y out2.png

Ticket 9427

Michael


More information about the ffmpeg-user mailing list