ffmpeg - 当有多个drawtext目标时,如何编写函数 "avfilter_graph_send_command"(ffmpeg)的*args?

标签 ffmpeg drawtext

我在ffmpeg drawtext过滤器上添加了2个drawtext,我的过滤器描述是这样的
" 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 .

关于ffmpeg - 当有多个drawtext目标时,如何编写函数 "avfilter_graph_send_command"(ffmpeg)的*args?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63466912/

相关文章:

c++ - ffmpeg:对 'uncompress' 的 undefined reference

ffmpeg - 如何使用ffmpeg向avi视频添加文本?

android - Canvas 绘图文本定位

video - 随机位置的FFmpeg文本

linux - OpenCV:如何获取可用编解码器的列表?

ffmpeg - 手动生成 "empty"h264 p-frame

audio - ffmpeg - 将图像和音频组合成视频后,视频比音频长

video - 如何从 TS 视频中裁剪最后 N 秒

android - 在继承 View 的自定义 View 中添加 TextView

android - 在 Android Canvas 上,如何使用 drawText 调整跟踪、字母间距?