zmq mehrzeiliger Text senden

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
jb_alvarado
User
Beiträge: 55
Registriert: Mittwoch 11. Juli 2018, 11:11

Hallo Allerseits,
ich versuche mit dem zmq Modul mehrzeiligen Text zu versenden. Als Server verwende ich ffplay mit libzmq:

Code: Alles auswählen

ffplay -f lavfi "color=s=512x288:c=black" -vf "null,zmq,drawtext=text='':fontsize=34:fontcolor=ffffff:x=(w-text_w)/2:y=(h-text_h)/2" 
Wenn ich nun über den Terminal einen Befehl mit:

Code: Alles auswählen

echo Parsed_drawtext_2 reinit "text='Hello\nWorld'" | zmqsend
sende, funktioniert es, auch mit:

Code: Alles auswählen

echo Parsed_drawtext_2 reinit "text='Hello
World'" | zmqsend
Mit pyhton/zmq bekomme ich das allerdings nicht hin. Der Befehl wäre da in etwa so:

Code: Alles auswählen

import zmq

context = zmq.Context()
port = "5555"
socket = context.socket(zmq.REQ)
socket.connect("tcp://localhost:{}".format(port))
socket.send("Parsed_drawtext_2 reinit text='Hello\nWorld'".encode('ascii'))
message = socket.recv()
Statt socket.send kann man auch socket.send_string, dann braucht man kein encode('ascii'), aber das hilft in dem Fall nichts.

Habt ihr eine Idee was ich noch versuchen kann?
Zuletzt geändert von jb_alvarado am Donnerstag 21. November 2019, 14:46, insgesamt 1-mal geändert.
__deets__
User
Beiträge: 14528
Registriert: Mittwoch 14. Oktober 2015, 14:29

Was heisst "bekommst ich es allerdings nicht hin"? Was genau geht, was nicht, was sind die Fehlermeldungen, was die Verhaltensweisen die abweichen?
jb_alvarado
User
Beiträge: 55
Registriert: Mittwoch 11. Juli 2018, 11:11

Sorry, ich war leider etwas zu schnell beim Fragestellen. Also Fehlermeldung kam keine und sobald ein Zeilenumbruch drin war, wurde nur die erste Zeile angezeigt.
Allerdings habe ich nun den String etwas geändert und mit einfachen Anführungszeichen umschlossen. Also lustiger Weiße, so wie auch oben in meinem Beispiel, das hatte ich nur so nicht in meinem original Code. Und jetzt geht es auch.
Antworten