{"id":728,"date":"2011-01-19T14:48:36","date_gmt":"2011-01-19T13:48:36","guid":{"rendered":"http:\/\/www.daniel-ritter.de\/blog\/?p=728"},"modified":"2024-05-13T22:52:55","modified_gmt":"2024-05-13T20:52:55","slug":"mehrere-videos-synchron-ferngesteuert-ubers-netzwerk-starten-mit-vlc","status":"publish","type":"post","link":"https:\/\/www.daniel-ritter.de\/blog\/mehrere-videos-synchron-ferngesteuert-ubers-netzwerk-starten-mit-vlc\/","title":{"rendered":"Mehrere Videos synchron ferngesteuert \u00fcbers Netzwerk starten mit VLC"},"content":{"rendered":"<p>Eine befreundete Designstudentin wollte f\u00fcr die Pr\u00e4sentation ihrer Diplomarbeit eine Videoinstallation aufbauen. Auf im Raum angeordneten Fernsehern sollten parallel 3 von ihr erstellte Filme laufen und gleichzeitig gestartet werden. Die 3 Filme sind so geschnitten, dass sie gemeinsam ein Gesamtkunstwerk (und hoffentlich eine gute Abschlussnote) ergeben. Ein Veranstaltungsunternehmen verlangte f\u00fcr den Aufbau einige 1000 Euro. Das \u00fcberstieg das Budget meiner Bekannten leider um einige 1000 Euro, deshalb haben wir den Aufbau selbst mit Open Source Software zusammengefrickelt. 3 (Windows)-Notebooks wurden per HDMI an die jeweiligen Fernseher angeschlossen und \u00fcber einen Switch vernetzt. Ein viertes (Linux)-Notebook diente als zentraler Steuerrechner. Der VLC Media-Player bietet neben einer hervorragenden Unterst\u00fctzung fast aller Videoformate auch viele weitere n\u00fctzliche Funktionen. In diesem Aufbau kam das Remote Control Interface des VLC zum Einsatz, das es erm\u00f6glicht, den Player \u00fcbers Netzwerk oder das Internet komplett fernzusteuern.<\/p>\n<p>\nDie Windows Rechner bekamen die IP&#8217;s 192.168.0.1 bis 192.168.0.3. Der Linux-Steuer-Rechner die IP 192.168.0.100.<br \/>\nDas Fernsteuerungsskript ist angelehnt an das Tutorial von <a href=\"http:\/\/markusberg.de\/Informatik\/9\/videos-fernsteuern-ueber-vlc\">Markus Berg<\/a> (vielen Dank).<\/p>\n<p><pre>\r\n#\/bin\/bash\r\n\r\nip[0]=\"192.168.0.1\"\r\nip[1]=\"192.168.0.2\"\r\nip[2]=\"192.168.0.3\"\r\n\r\nport=20000\r\n\r\nfunction send_cmd {\r\n\r\nfor address in ${ip[@]} \r\n\tdo \r\n                echo \"$1\" | nc $address $port &\r\n\tdone\r\n\r\n}\r\n\r\n\r\nwhile ( [ 1 ] )\r\ndo\r\nclear\r\necho \"Video Command\"\r\necho\r\necho \" s  | START\"\r\necho \" p  | PAUSE\/PLAY\"\r\necho \" z  | ZURUECKSPULEN\"\r\necho \" zp | ZURUECKSPULEN + PAUSE\"\r\necho \" f  | VOLLBILD AN\/AUS\"\r\necho \" b  | Beenden\"\r\necho\r\necho\r\n\r\necho\r\necho -n \"Kommando? \"\r\nread command\r\n\r\ncase \"$command\" in\r\n     s)\r\n\t   send_cmd play\r\n           ;;\r\n     p)\r\n\t   send_cmd pause\r\n           ;;\r\n     z)\r\n\t   send_cmd prev\r\n           ;;\r\n     zp)\r\n\t   send_cmd prev\r\n\t   perl -e 'select(undef,undef,undef,.3)'\r\n\t   send_cmd pause\r\n           ;;\r\n     f)\r\n\t   send_cmd fullscreen \r\n           ;;\r\n     b)\r\n\t   exit\r\n\t   ;;\r\nesac\r\ndone;\r\n<\/pre>\n<p>Dieses Skript auf dem Steuerungsrechner ergibt dieses spartanische men\u00fc:<\/p>\n<pre>\r\nVideo Command\r\n\r\n s  | START\r\n p  | PAUSE\/PLAY\r\n z  | ZURUECKSPULEN\r\n zp | ZURUECKSPULEN + PAUSE\r\n f  | VOLLBILD AN\/AUS\r\n b  | Beenden\r\n\r\n\r\n\r\nKommando? \r\n\r\n<\/pre>\n<p>Auf den Windowsrechner musste nun nur noch aus der Windows-Konsole heraus VLC im Remote Control Modus gestartet werden:<\/p>\n<pre>\r\nvlc --extraintf oldrc --rc-host 192.168.0.1:20000\r\n<\/pre>\n<p>Nun wurde noch das Video in die jeweilige VLC-Playlist eingef\u00fcgt. Die Fernsteuerung war fertig.<\/p>\n<p>\nLeider gab es (wie fast immer) einige Fallstricke. Bei unseren Tests zickte zun\u00e4chst die Windows-Firewall herum. F\u00fcr die Pr\u00e4sentation musste diese deaktiviert werden. Generell war Windows keine besonders gute Wahl f\u00fcr die Pr\u00e4sentation, da Update-Meldungen, Avira-Popups und andere Nervereien nat\u00fcrlich im Video ziemlich peinlich wirken. Die Windows-Rechner mussten ziemlich kastriert werden. Firewalls, Virenscanner und Automatische Updates wurden deaktiviert. Zahlreiche Programme, die es sich im Tray gem\u00fctlich gemacht hatten, wurden deinstalliert. Im Endeffekt w\u00fcrde ich beim n\u00e4chsten Mal das Abspielen auch mit Linux Clients realisieren, die aber wegen des Zeitdrucks nicht verf\u00fcgbar waren.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Eine befreundete Designstudentin wollte f\u00fcr die Pr\u00e4sentation ihrer Diplomarbeit eine Videoinstallation aufbauen. Auf im Raum angeordneten Fernsehern sollten parallel 3 von ihr erstellte Filme laufen und gleichzeitig gestartet werden. Die 3 Filme sind so geschnitten, dass sie gemeinsam ein Gesamtkunstwerk (und hoffentlich eine gute Abschlussnote) ergeben. Ein Veranstaltungsunternehmen verlangte f\u00fcr den Aufbau einige 1000 Euro. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":729,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[227],"tags":[119],"class_list":["post-728","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux","tag-vlc-fernsteuerung"],"_links":{"self":[{"href":"https:\/\/www.daniel-ritter.de\/blog\/wp-json\/wp\/v2\/posts\/728","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.daniel-ritter.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.daniel-ritter.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.daniel-ritter.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.daniel-ritter.de\/blog\/wp-json\/wp\/v2\/comments?post=728"}],"version-history":[{"count":15,"href":"https:\/\/www.daniel-ritter.de\/blog\/wp-json\/wp\/v2\/posts\/728\/revisions"}],"predecessor-version":[{"id":1967,"href":"https:\/\/www.daniel-ritter.de\/blog\/wp-json\/wp\/v2\/posts\/728\/revisions\/1967"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.daniel-ritter.de\/blog\/wp-json\/wp\/v2\/media\/729"}],"wp:attachment":[{"href":"https:\/\/www.daniel-ritter.de\/blog\/wp-json\/wp\/v2\/media?parent=728"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.daniel-ritter.de\/blog\/wp-json\/wp\/v2\/categories?post=728"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.daniel-ritter.de\/blog\/wp-json\/wp\/v2\/tags?post=728"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}