FFmpeg drawtext %文本消失问题

直接使用:

ffmpeg -i 1.mp4 -vf "drawtext=text='Super User % ':x=(w-text_w)/2:y=(h-text_h)/2:fontsize=24:fontcolor=white" -c:a copy output.mp4

会得不到文本,log显示:

[Parsed_drawtext_0 @ 0x7fdc5be06e40] Stray % near ''
    Last message repeated 45 times
[Parsed_drawtext_0 @ 0x7fdc5be06e40] Stray % near '':01.66 bitrate=   0.2kbits/s speed=2.06x
    Last message repeated 15 times
[Parsed_drawtext_0 @ 0x7fdc5be06e40] Stray % near ''0:01.98 bitrate=   0.2kbits/s speed=1.37x
    Last message repeated 14 times
[Parsed_drawtext_0 @ 0x7fdc5be06e40] Stray % near ''0:02.64 bitrate= 792.9kbits/s speed=1.35x
    Last message repeated 11 times
[Parsed_drawtext_0 @ 0x7fdc5be06e40] Stray % near ''0:02.98 bitrate=1404.5kbits/s speed=1.21x
    Last message repeated 14 times
[Parsed_drawtext_0 @ 0x7fdc5be06e40] Stray % near ''0:03.32 bitrate=1260.4kbits/s speed=1.08x
    Last message repeated 12 times
[Parsed_drawtext_0 @ 0x7fdc5be06e40] Stray % near ''0:03.98 bitrate=1577.2kbits/s speed=1.11x
^C    Last message repeated 4 times
av_interleaved_write_frame(): Immediate exit requested
Error writing trailer of output.mp4: Immediate exit requested

此时需要参数 expansion
expansion=none

ffmpeg -i 1.mp4 -vf "drawtext=text='Super User % ':x=(w-text_w)/2:y=(h-text_h)/2:fontsize=24:fontcolor=white:expansion=none" -c:a copy output.mp4

在这里插入图片描述

参数解释:
设置文本扩展模式。可以为 none , strftime (已弃用了) 或 normal (默认). 见后面 文本扩展中的详细介绍
文本扩展
如果 expansion 设置为 strftime ,则滤镜会接受 strftime() 序列提供的文本并进行相应扩展。
检查 strftime() 的文档。这个特性现在是弃用的。
如果 expansion 设置为 none ,则文本都是直接打印文本(即直接以文本内容不扩展进行输出)
如果 expansion 设置为 normal (它是默认值),将应用下面的扩展规则。
序列形式 ${…} 的内容将被扩展。大括号之间的文本是一个函数的名字,可能紧随其后是一些 用 : 隔开的参数。如果包含特殊字符或分隔符(这里是 : 或者 } ),它们应该被转义。
注意对于在作为滤镜参数的 text 选项值,或者滤镜链图中的参数(多个滤镜连接时)以及是
在 shell 环境中使用,则可能需要4层转义。使用文本文件可以避免这些问题(减少转义的使用)。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值