Quebra de linha Ffmpeg com alinhamento do lado direito

Quebra de linha Ffmpeg com alinhamento do lado direito

eu uso este comando ffmpeg para renderizar um vídeo a partir de imagens - o problema é que quando eu uso o carro /ni não consigo fazer o alinhamento do lado direito para texto em árabe, não posso usar vários drawtext para isso porque o texto é do banco de dados.

ffmpeg -r:v 1/5 -f concat -safe 0 -i /system/gobro.txt -i "/system/chill.mp3" -vf "scale=iw*min(1280/iw\,800/ih):ih*min(1280/iw\,800/ih), pad=1280:800:(1280-iw*min(1280/iw\,800/ih))/2:(800-ih*min(1280/iw\,800/ih))/2,
drawbox=enable='between(t,5,39.9)':y=(ih-110):[email protected]:width=iw:height=110:t=filldrawtext=enable='between(t,10,14.9)':fontfile=/ttf/changa-medium.ttf:fontsize=30:fontcolor=white:x=(w-text_w-20):y=(h-text_h-60):text='غير كانت الخطّة ', 
drawtext=enable='between(t,10,14.9)':fontfile=/TTF/Changa-Medium.ttf:fontsize=20:fontcolor=white:x=(w-text_w-20):y=(h-text_h-15):text='gfuishg isfdhgi usfdhgi sfdg /n hello this is new line'" 
-c:a aac -shortest -y -pix_fmt yuv420p /public/video.mp4 2> /system/out.txt

captura de tela explica o problema

Obrigado

Responder1

Não acho que importe se o seu texto é um script da direita para a esquerda ou da esquerda para a direita. Acho que o único problema que você precisa resolver é oalinhamentoou ojustificaçãodo texto. Na sua foto de amostra, parece que você deseja que todo o texto seja justificado à direita, esteja ele escrito em um script RTL ou LTR. Se eu estiver correto, algo semelhante ao seguinte deve fazer o que você deseja.

No seu código de exemplo, você coloca o texto LTR em um filtro

drawtext=enable='between(t,10,14.9)':fontfile=/TTF/Changa-Medium.ttf:fontsize=20:fontcolor=white:x=(w-text_w-20):y=(h-text_h-15):text='gfuishg isfdhgi usfdhgi sfdg /n hello this is new line'

Separe as duas linhas em dois filtros drawtext e "alinhe" as duas strings à direita.

drawtext=enable='between(t,10,14.9)':fontfile=/TTF/Changa-Medium.ttf:fontsize=20:fontcolor=white:x=(w-text_w-20):y=(h-text_h-15):text='gfuishg isfdhgi usfdhgi sfdg',
drawtext=enable='between(t,10,14.9)':fontfile=/TTF/Changa-Medium.ttf:fontsize=20:fontcolor=white:x=(w-text_w-20):y=(h-text_h-line_h-15):text='hello this is new line'

Para a segunda linha do texto, alterei o valor do deslocamento y. Adicionei o termo "-line_h" para que a segunda linha fique abaixo da primeira linha.

informação relacionada