Ich habe es im Moment noch mit Portforwarding laufen und den RTSP mit User/Pass versehen. Eine VPN Verbindung habe ich zwar zwischen den Boxen, die schluckt aber zuviel Overhead und CPU-Last, daher lasse ich die Streams unverschlüsselt übertragen und mache nur alles restliche per VPN.
Besser wäre es natürlich den Port 554 nicht öffentlich freigeben zu müssen. Wenn Du Lust auf rumbasteln hast, mache das am besten über einen SSH-Tunnel und benutze den Cipher arcfour. Der ist zwar schnell und leicht knackbar (man kann also mitlesen was Du da an Daten transferierst), aber Du hast weniger Chance, dass jemand Deine Box hackt, für den Fall dass bspw. im dreamrtspserver ein Bufferoverflow ist und man Code injecten kann. Dazu musst Du dropbear durch openssh ersetzen und den arcfour Cipher in der sshd_config erlauben. Anmerkung: Das Verfahren zur Authentification wird nicht beeinträchtigt, nur weil man arcfour benutzt - der Login ist also immer noch sicher, nur die übertragenen Daten sind leichter sichtbar. Das funktioniert grundsätzlich gut - habe zum Beispiel mein movie-Verzeichnis der Server-Box per sshfs mit arcfour auf meiner Client-Box gemountet. Der Datendurchsatz ist super und kein Vergleich zu einem anderen Cipher oder NFS über VPN. Habe nur noch keine Lust gehabt autossh für mipsel zu compilieren und die Stream-URLs nochmals zu ändern
Die Bouquets habe ich einfach vom Partnerbox-Plugin anlegen lassen und dann in den userbouquet Dateien die URLs ersetzt. Sieht jetzt bei mir bspw. so aus:
#SERVICE 1:0:1:2F30:441:1:C00000:0:0:0:rtsp%3a//USER%3PASS@DOMAIN%3a554/stream?ref=1%3a0%3a1%3a2F30%3a441%3a1%3aC00000%3a0%3a0%3a0%3a:RTLplus
#DESCRIPTION RTLplus
Das Partnerbox-Plugin habe ich immer noch laufen für die RemoteTimer. Das hat aber ein Problem mit Sendern, die ein Leerzeichen im Namen haben. Dafür habe ich auch einen Fix, aber bisher noch nicht die Muße gehabt mich im Entwickler-Forum anzumelden und den zu posten. Aber vielleicht liest ja hier jemand mit :):
--- a/Partnerbox/RemoteTimerEntry.py
+++ b/Partnerbox/RemoteTimerEntry.py
@@ -543,6 +543,11 @@
except:
self.mode = "add"
+ service_ref_arr = service_ref.split(':', 10)
+ if len(service_ref_arr) == 11:
+ service_ref_arr[10] = ''
+ service_ref = ':' . join(service_ref_arr)
+
if self.mode == "add":
sCommand = "%s/web/timeradd?sRef=%s&begin=%d&end=%d&name=%s&description=%s&dirname=%s&tags=%s&eit=%s&justplay=%d&afterevent=%s&repeated=%d" % (http, service_ref,begin,end,urllib.quote(name),urllib.quote(descr),urllib.quote(dirname),urllib.quote(self.timerentry_tagsset.value), self.timer.eit, justplay,afterevent, self.timer.repeated)
else: # edit
Alles anzeigen