FFMPEG:通过FFMPEG中的ZeroMQ控制覆盖
对于一个项目,我们需要手动控制视频流顶部的覆盖(静态图像)。我们得出结论,我们需要ZeroMQ来控制这一点,并且我们已经成功地通过ZeroMQ控制了一个音频过滤器 为此,我们考虑了两种选择:FFMPEG:通过FFMPEG中的ZeroMQ控制覆盖,ffmpeg,zeromq,Ffmpeg,Zeromq,对于一个项目,我们需要手动控制视频流顶部的覆盖(静态图像)。我们得出结论,我们需要ZeroMQ来控制这一点,并且我们已经成功地通过ZeroMQ控制了一个音频过滤器 为此,我们考虑了两种选择: 使用颜色过滤器控制前景(图像)透明度 “移动”视频流前面的覆盖图像,并将其从视频画布中移除 不幸的是,我们成功地使这两种方法都起作用,但没有与ZeroMQ结合使用 例如: ffmpeg -loglevel verbose \ -i $STREAM \
ffmpeg -loglevel verbose \
-i $STREAM \
-i overlay.png \
-bsf:a aac_adtstoasc \
-threads 12 \
-vf "zmq=bind_address=tcp\\\://127.0.0.1\\\:1235, [0:v][1:v]overlay=25:25" \
-c:a aac \
-af "azmq=bind_address=tcp\\\://127.0.0.1\\\:1235,volume=1" \
-c:v h264 output
上述示例产生以下错误:
Error reinitializing filters!
Failed to inject frame into filter network: Invalid argument
关于如何实现这一点的建议非常感谢 工作解决办法:
更新
设法让它工作:
ffmpeg -loglevel verbose \
-i $STREAM \
-i overlay.png \
-bsf:a aac_adtstoasc \
-threads 12 \
-filter_complex "[0:v][1:v]overlay=x=0:y=0,zmq=bind_address=tcp\\\://127.0.0.1\\\:1236" \
-c:a aac \
-af "azmq=bind_address=tcp\\\://127.0.0.1\\\:1235,volume=1" \
-c:v libx264
我可以通过ZeroMQ发送消息来删除(控制)覆盖:
Parsed_overlay_0 x 1280