gpt4 book ai didi

FFmpeg drawtext 和使用 sendcmd/zmq 的实时坐标

转载 作者:行者123 更新时间:2023-12-04 22:55:19 27 4
gpt4 key购买 nike

我想在具有外部实时数据的实时视频源上使用标记来设置 x,y 坐标。 sendcmd 可以读取文本文件但它不会更新它,因此不会执行以后的更新。只有zmq才有可能吗?如果是这样,我可以将 zmq 用作单个过滤器(使用 drawtext),而不是使用复杂的过滤器吗?

我有一个 python,它以适当的格式将实时坐标导出到 cmd.txt 文件。我使用 unix 时间作为坐标,我还从实时环回设备复制输入时间戳,因此它们几乎具有相同的时间。有一点延迟,所以我用 +1.5s 补偿了导出的时间戳。这意味着标记在这段额外的时间内移动(而 cmd.txt 中的时间戳比实时源稍早),但它不会再更新。我假设 FFmpeg 读取了这个 cmd.txt 并且不会再更新它,但是我的 python 正在不断地写入它。

cmd.txt 的示例行:

1557402120.3119707 drawtext reinit 'x=752:y=480';

这是实际的 ffmpeg 管道:
ffmpeg -fflags nobuffer -vaapi_device /dev/dri/renderD128 -f v4l2 -i /dev/video0 -vf "sendcmd=f=cmd.txt,drawtext=fontfile=font.ttf:fontsize=30:fontcolor=white:r=25:text='o',format=nv12,hwupload" -copyts -c:v h264_vaapi -qp 24 -y 0.mp4

Source 是一个回送设备,以 unix 时间作为输入时间戳。

最佳答案

您可以在简单的过滤器链中使用 zmq 代替 sendcmd。

还有另一种方式,目前没有记录。发送击键

Cdrawtext 1557402120.3119707 reinit 'x=752:y=480'<enter>

到ffmpeg的标准输入。

初始 cC用于命令,紧随其后(没有空格)是过滤器类/实例。您可以使用 all向所有可以接收命令的过滤器发送命令。您可以发送 \n发信号 <enter>

关于FFmpeg drawtext 和使用 sendcmd/zmq 的实时坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56058909/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com