将ffmpeg drawtext用于rtl语言的问题
problem using ffmpeg drawtext for rtl languge
我用这个命令在视频上写:
ffmpeg -i source.mp4 -vf drawtext=\"text_shaping=1:fontfile=font.ttf:
text='یه نوشته فارسی!': fontcolor=black: fontsize=$font_size: box=1: boxcolor=black@0:boxborderw=0: x=(w-text_w)/2: y=(h-text_h)/2 :enable='between(t,5,10)'\" -c:a copy -force_key_frames 0:05:00,0:6:00 end.mp4
当我的文本开头和末尾没有数字和符号(!,?,$ 和...)时,它工作正常。
我的语言是从右到左,这个命令不支持 rtl。
我必须做些什么来解决这个问题?
首先,问题与 rtl 或 FFMPEG 无关。如果您想使用像 "!" 这样的字符,您需要 转义它们 。
通过转义感叹号(如下所示:text='مرحبا بيتر\!'
),我能够毫无问题地绘制文本,而无需采取任何其他特殊措施。
其次,您应该始终小心不要在过滤器内或过滤器参数.
之间留下空格
第三,在提问时,最好提供更多详细信息(例如报告、日志 等),而不是像 "it's not working".
这样的一般性陈述
我知道这已经是一个老问题了,但我真的希望这对您 and/or 其他人有所帮助。
我用这个命令在视频上写:
ffmpeg -i source.mp4 -vf drawtext=\"text_shaping=1:fontfile=font.ttf:
text='یه نوشته فارسی!': fontcolor=black: fontsize=$font_size: box=1: boxcolor=black@0:boxborderw=0: x=(w-text_w)/2: y=(h-text_h)/2 :enable='between(t,5,10)'\" -c:a copy -force_key_frames 0:05:00,0:6:00 end.mp4
当我的文本开头和末尾没有数字和符号(!,?,$ 和...)时,它工作正常。 我的语言是从右到左,这个命令不支持 rtl。 我必须做些什么来解决这个问题?
首先,问题与 rtl 或 FFMPEG 无关。如果您想使用像 "!" 这样的字符,您需要 转义它们 。
通过转义感叹号(如下所示:text='مرحبا بيتر\!'
),我能够毫无问题地绘制文本,而无需采取任何其他特殊措施。
其次,您应该始终小心不要在过滤器内或过滤器参数.
之间留下空格第三,在提问时,最好提供更多详细信息(例如报告、日志 等),而不是像 "it's not working".
这样的一般性陈述我知道这已经是一个老问题了,但我真的希望这对您 and/or 其他人有所帮助。