Liebe Pythonversteher,
folgendes Script verwende ich auf einem Linux Desktop um mir von meinem Homeserver das Türkamerabild anzeigen zu lassen. Dies ist per Bewegungsmelder getriggert.
Leider passiert nun Folgendes: Der VLC wir brav geöffnet, sobald der HS auf Port 7010 das richtige Secret sendet. Sendet der HS jedoch während des laufenden Streams nochmals, z.b weil der Bewegungsmelder erneut ausgelöst hat, so lässt sich der VLC kaum noch beenden, da dieser sofort neu gestartet wird.
Unter Umständen muss ich so der VLC 5 mal schließen, bis er zu bleibt.
Irgendwie puffert der "data = conn.recv(1024)" die Dinger bis der VLC beendet wird...
Konnte man das Problem verstehen?? Und ggf. sogar lösen?
Grüße
Hansa
---- schnipp ----
#!/usr/bin/env python
import os
import socket
import sys
import time
HOST = ''
PORT = 7010
SECRET = 'geheim'
def log(msg):
sys.stderr.write('[%s] %s\n' % (time.ctime(), msg))
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(1)
while True:
conn, addr = s.accept()
data = conn.recv(1024)
conn.close()
if not data:
continue
if data.strip() != SECRET:
log('received invalid secret from %s' % repr(addr))
continue
log('starting vlc...')
os.system("vlc --qt-minimal-view 'rtsp://root:xyz@192.168.0.80:554/axis-media/media.amp?videocodec=h264&streamprofile=Quality'")
--- schnapp ---
folgendes Script verwende ich auf einem Linux Desktop um mir von meinem Homeserver das Türkamerabild anzeigen zu lassen. Dies ist per Bewegungsmelder getriggert.
Leider passiert nun Folgendes: Der VLC wir brav geöffnet, sobald der HS auf Port 7010 das richtige Secret sendet. Sendet der HS jedoch während des laufenden Streams nochmals, z.b weil der Bewegungsmelder erneut ausgelöst hat, so lässt sich der VLC kaum noch beenden, da dieser sofort neu gestartet wird.
Unter Umständen muss ich so der VLC 5 mal schließen, bis er zu bleibt.
Irgendwie puffert der "data = conn.recv(1024)" die Dinger bis der VLC beendet wird...
Konnte man das Problem verstehen?? Und ggf. sogar lösen?
Grüße
Hansa
---- schnipp ----
#!/usr/bin/env python
import os
import socket
import sys
import time
HOST = ''
PORT = 7010
SECRET = 'geheim'
def log(msg):
sys.stderr.write('[%s] %s\n' % (time.ctime(), msg))
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(1)
while True:
conn, addr = s.accept()
data = conn.recv(1024)
conn.close()
if not data:
continue
if data.strip() != SECRET:
log('received invalid secret from %s' % repr(addr))
continue
log('starting vlc...')
os.system("vlc --qt-minimal-view 'rtsp://root:xyz@192.168.0.80:554/axis-media/media.amp?videocodec=h264&streamprofile=Quality'")
--- schnapp ---
Kommentar