Videos aus der Ferne

März 16, 2011·
Julio Batista Silva
Julio Batista Silva
· 3 Min Lesezeit
blog Linux

Ich wollte einen Film ansehen, den ich auf eine externe Platte an meinem älteren Notebook geladen hatte.
Normalerweise hänge ich diese Platte direkt an den Fernseher, aber diesmal konnte ich sie nicht auswerfen, weil andere Programme sie benutzten.
Ich stand also vor zwei Möglichkeiten: den Film auf dem 14"-Bildschirmchen ansehen oder einen Weg finden, das Video auf mein neues Notebook mit HDMI-Ausgang zu streamen und die volle Bild- und Tonqualität zu genießen, die der LG™ hergibt.

Als guter filmbegeisterter Computermensch (bin ich nicht) habe ich die zweite Variante gewählt. Hier schreibe ich, wie ich das Problem damals gelöst habe — und welche weiteren Methoden ich später noch gefunden habe.

1. Vernetze die Rechner

Ich hatte keinen Router für ein Netzwerk zur Hand. Da beide Notebooks WLAN-Karten haben, habe ich ein Ad-Hoc-Netz aufgebaut, wie in diesem Beitrag beschrieben (ohne den Internet-Teil).

2. Finde einen Weg, Dateien auszutauschen

Es gibt mehrere Wege, Pakete im Netzwerk von einem Rechner zum anderen zu schicken:

  1. SSH

    SSH kam mir als Erstes in den Sinn, weil ich es gewohnt bin. Zugegeben, eine besonders gute Lösung ist es nicht: es kostet viel CPU und erhöht den Netzwerkverkehr unnötig (es gibt keinen Grund für Verschlüsselung, außer du bist paranoid oder das Video ist streng geheim). Jedenfalls hat es so gut funktioniert:

    1. Installiere und aktiviere SSH auf beiden Rechnern:

      sudo pacman -S openssh
      sudo /etc/rc.d/sshd start
      
    2. Verbinde Rechner2 per ssh mit Rechner1:

      ssh julio@192.168.1.1
      
    3. Spiel das Video ab

      mplayer video.avi -display :0
      

      ou

      export DISPLAY=:0
      

      falls wir ein anderes Programm brauchen, das keinen Befehl zum Wechseln des Displays hat.

  2. SSH mit Pipe

    Wie eben, aber das Video direkt an mplayer weitergereicht

    ssh julio@192.168.1.2 "cat /media/externo/Videos/video.avi" | mplayer -cache 65536 -
    
  3. SSHFS

    1. Installiere sshfs

      sudo pacman -S sshfs
      
    2. Hänge das Dateisystem ein

      sshfs julio@192.168.1.2:/media/externo /media/externo
      
    3. Wechsle in den Ordner und spiel das Video mit mplayer ab, als wäre es eine lokale Datei.

      mplayer /media/externo/Videos/video.avi
      
  4. SSH mit X11

    1. Ändere auf dem Server in /etc/ssh/sshd_conf

      #X11forwarding no
      

      in

      X11Forwarding yes
      

      oder bearbeite auf dem Client /etc/ssh/ssh_config und mach aus #ForwardX11 no ForwardX11 yes.

    2. Spiel das Video mit mplayer ab

    ssh -XY julio@192.168.1.2 mplayer /media/externo/Videos/video.avi
    
  5. Samba

    1. Lade Samba herunter

    2. Gib deinen Videoordner frei

      #  vim /etc/samba/smb.conf
      [videos]
         comment = Julios Videos
         path = /media/externo/Videos
         writable = no
         valid users = julio
         follow symlinks = yes
         wide links = yes
      
    3. Hänge das Dateisystem ein

      sudo mount -t cifs //192.168.0.1/Videos /media/externo/Videos -o user=julio,password=PASSWORD,workgroup=WORKGROUP
      
    4. Spiel das Video mit mplayer ab, als wäre es eine lokale Datei

      mplayer /media/externo/Videos/video.avi
      
  6. Netcat

    • Auf dem Rechner mit dem Video:

      cat /media/externo/Videos/video.avi | nc -l -p 9998
      
    • Auf dem Rechner am Fernseher:

      nc 192.168.0.1 9998 | mplayer -vo x11 -cache 3000 -
      
  7. VLC mit sftp

    file » Open Network…

    sftp://julio@10.211.55.3/media/externo/Videos/video.avi

    Gib Benutzername und Passwort ein

3. Konvertieren

In meinem Heimnetz lief 720p-Streaming problemlos, sogar mit dem alten Rechner und altem WLAN (802.11g). Wenn du dasselbe mit 1080p machen oder gar über das Internet streamen willst, kann es sinnvoll sein, das Video in Echtzeit umzuwandeln. Dafür kannst du ffmpeg benutzen.

Standby verhindern

Damit sich der Bildschirm des am Fernseher hängenden Rechners nicht wegen Inaktivität automatisch abschaltet, können wir den Standby über Xorg deaktivieren:

sudo vim /etc/X11/xorg.conf

Und den Abschnitt ServerLayout wie im folgenden Beispiel gestalten:

Section "ServerLayout"
        Identifier                  "Layout"
        Screen      0               "Screen0"
        Option      "Xinerama"      "true"
        Option      "BlankTime"     "0"
        Option      "StandbyTime"   "0"
        Option      "SuspendTime"   "0"
        Option      "OffTime"       "0"
EndSection

Julio Batista Silva
Autoren
Senior Cloud Developer

Ich bin ein brasilianischer Computeringenieur mit Wohnsitz in Deutschland und begeistere mich für Technik, Wissenschaft, Fotografie und Sprachen.

Ich programmiere seit etwa zwei Jahrzehnten und habe dabei alles von mobilen Apps und Webentwicklung bis hin zu Machine Learning erkundet. Derzeit fokussiere ich mich auf Cloud‑SRE und Data Engineering.

Ich engagiere mich ehrenamtlich in den Open‑Source- und Python‑Communities, helfe bei der Organisation der PyCon DE und PyData Berlin, betreue als Mentor und trage mit Code und Übersetzungen bei.

In meinem Blog teile ich Linux‑Tipps, Einrichtungsanleitungen und persönliche Notizen, die ich als spätere Referenz geschrieben habe. Ich hoffe, dass sie auch anderen nützlich sind. Die Inhalte sind in mehreren Sprachen verfügbar.

Schau dir meine Galerie an, um einige meiner Fotografien zu sehen.

Abseits der Tastatur findest du mich auf Konzerten, beim Klarinettenspiel, Radfahren, Tauchen oder beim Erkunden neuer Orte, Kulturen und Küchen.

Ich freue mich immer über den Austausch! 🙂

comments powered by Disqus