有多个drawtext目标时,如何编写函数“ avfilter_graph_send_command”ffmpeg的* args?

问题描述

我在ffmpeg drawtext过滤器上添加了2个drawtext,我的过滤器descr像这样 “ drawtext = fontfile = simhei.ttf:fontcolor=#ff00ff@%1.0:fontsize = 20:Box = 1.0:Boxcolor=#00ff00@%1.0:x = 0:y = 0:text ='123', drawtext = fontfile = simhei.ttf:fontcolor=#ff00ff@%1.0:fontsize = 20:Box = 1.0:Boxcolor=#00ff00@%1.0:x = 0:y = 200:text ='456'“ ,因此视频上有两个字符水印。 而且此过滤器支持通过命令更改参数:reinit,所以我使用函数:avfilter_graph_send_command(m_filter_graph,“ drawtext”,“ reinit”,m_filters_args,NULL,0,0)实时修改水印。(m_filters_args是我的* arg变量) 我尝试将snprintf m_filters_args作为 “ fontfile = simhei.ttf:fontcolor=#ff00ff@%1.0:fontsize = 20:Box = 1.0:Boxcolor=#00ff00@%1.0:x = 0:y = 10:text ='112233',fontfile = simhei.ttf:fontcolor=#ff00ff@%1.0:fontsize = 20:Box = 1.0:Boxcolor=#00ff00@%1.0:x = 0:y = 200:text ='445566'”,但它没有不能按我希望的那样工作,它只能修改一个drawtext,我希望它们都可以修改,我尝试了其他方法,但都失败了。 您能告诉我如何编写* arg还是有其他方法可以解决问题。

任何帮助将不胜感激!

解决方法

您可以将ID附加到过滤器上,例如drawtext@abc=fontfile=...。然后,将命令目标设置为drawtext@abc

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...