es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

FFmpeg drawbox y ZMQ b’38 Función no implementada.

Estoy tratando de controlar dinámicamente el tamaño y la posición de una caja en un flujo rtsp expuesto por ffmpeg. Encontré una solución potencial que se basa en zmq. Recompilé ffmpeg con soporte zmq y ejecuté el flujo con el comando:

ffmpeg -re -rtsp_transport tcp -stimeout 1000000 -i "rtsp://<STREAM_ADDR>" -pix_fmt bgra -filter_complex zmq,drawbox=x=10:y=10:w=50:h=50:c=red -f fbdev /dev/fb0

Luego, intento enviar una actualización con un script de python3 de las herramientas del repositorio de ffmpeg (lo modifiqué para ajustarlo a python3):

import sys, zmq, cmd

class LavfiCmd(cmd.Cmd):
    prompt = 'lavfi> '

<pre><code>def __init__(self, bind_address):
    context = zmq.Context()
    self.requester = context.socket(zmq.REQ)
    self.requester.connect(bind_address)
    cmd.Cmd.__init__(self)

def onecmd(self, cmd):
    if cmd == &#39;EOF&#39;:
        sys.exit(0)
    print(&#39;Sending command:[%s]&#39; % cmd)
    self.requester.send_string(cmd)
    message = self.requester.recv()
    print(&#39;Received reply:[%s]&#39; % message)
</code></pre>

try:
    bind<em>address = sys.argv[1] if len(sys.argv) > 1 else "tcp://localhost:1235"
    LavfiCmd(bind</em>address).cmdloop('FFmpeg libavfilter interactive shell')
except KeyboardInterrupt:
    pass

<code>
Intento enviar
</code>
Parsed<em>drawbox</em>1 reinit x=40
<code>
o
</code>
Parsed<em>drawbox</em>1 x 40
<code>
Pero sigo obteniendo `Received reply:[b&#39;38 Function not implemented&#39;]` del script.
Cuando configuro la opción verbose en ffmpeg, puedo ver
</code>
[Parsed<em>zmq</em>0 @ 0x5594e2d3b0] Processing command #8 target:Parsed<em>drawbox</em>1 command:reinit arg:w=40
[Parsed<em>zmq</em>0 @ 0x5594e2d3b0] Sending command reply for command #8:
38 Function not implemented

¿Alguien tiene alguna idea de qué puede causarlo o cómo depurarlo mejor?

Gracias

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que la función que está intentando utilizar, Parsed_drawbox_1 reinit, no está implementada. El mensaje de error que está recibiendo indica que la función no es reconocida. Esto podría ser debido a varios factores, como un error de sintaxis en su comando, una biblioteca o dependencia faltante, o un error en el código.

    Para depurar mejor el problema, podría intentar imprimir mensajes de error más detallados o agregar registros adicionales a su script. También podría intentar ejecutar el script con un depurador para rastrear el código e identificar dónde está ocurriendo el problema. Además, podría intentar buscar en foros en línea y documentación para problemas y soluciones similares.

Comments are closed.