Sorry, zu privat für die Öffentlichkeit. Vielleicht klappt’s nach dem Login?
Sorry, zu privat für die Öffentlichkeit. Vielleicht klappt’s nach dem Login?
Naja, eigentlich war es zu erwarten. Jannikind spielt sehr gerne mit ihrer Freundin auf unserem Minecraft-Server, manchmal ist auch Alina mit von der Partie. Im Kreativmodus wird da gebaut, als gäbe es die Wohnbauprämie wieder – und nicht nur für Familien …
Neulich kam sie nun aber mit einer neuen Idee um die Ecke: Es wäre doch so irre viel cooler, wenn man mit viel mehr Leuten und so Teams und gegeneinander … Schuld an solchen Ideen sind Youtuber, wie Crocodileandy, mit epischen Unternehmungen, wie dem Kampf von vier Insektenvölkern um die Vorherrschaft (youtube) im Garten.
Natürlich ist sowas großartig. Es ist nur gar nichts für Anfänger. Gruppen zu managen und zu führen ist nun mal alles andere als einfach. Und ich will auch nicht, das meine jüngste Tochter mit einem Haufen mir völlig unbekannter Leute zockt. Auch ist mir eigentlich bei dem Gedanken nicht wohl, dass unbekannte Leute auf der Hardware rumrödeln, die auch für mich wichtige Sachen vorhält.
Wir fangen das mal lieber sehr viel kleiner an. Mit Leuten, die Jannika kennt und schon etwas einschätzen kann, aus ihrer Schule zum Beispiel. Ohne Kontakt zu und der Zustimmung von deren Eltern geht da sowieso nichts. Ich brauch da einmal Rücksprache. Wenn sie dann zu viert oder fünft anfangen und erstmal versuchen, gemeinsam auf einer Insel zu überleben, sollte das genügend Herausforderung sein.
Einen zweiten Server hab ich parallel zum ersten aufgesetzt, der startet auf die gleiche Weise, OpenRC-init-script, screen, wisst schon … Unter meiner Domain hab ich aber nicht einfach eine neue Subdomain aufgemacht! Da muss einfach keine Verbindung offensichtlich sein, für die, die da spielen kommen werden. Ich hab stattdessen eine neue Domain registriert – Unser (sehr alter, seit über 20 Jahren bestehender) Vertrag mit Strato beinhaltet insgesamt 10 Domains, da sind noch ein paar frei. Vielleicht mach ich auch mal noch eine Portalseite für alle eingeladenen Mitspieler rein.
Damit es nicht zu Kollisionen zwischen den beiden Minecraft-Servern kommt, läuft der neue zweite Server auf einem anderen Port. Um es den Spielern einfach zu machen, hab ich dessen subdomain (unter der neuen Domain) per SRV Record erreichbar gemacht. Dort kann man die Ports biegen. Nachdem der Port im Router aufgemacht war, konnte man auch von außen drauf.
Die fixe Idee mit der Insel hat mich einen Abend Recherche gekostet: Offenbar gibt es Leute, die sich damit beschäftigen, Landschaften für/in Minecraft zu erstellen. Darunter gibt es auch Inseln, die für ein Survival-Abenteuer taugen sollen. Machen wir es kurz: Landschaftlich sind die beim Nachwuchs alle als ‚laaaaaaaaaaaangweilig‘ durchgefallen. Ich kann dem nicht widersprechen, ist wirklch so.
Was Minecraft eigenständig generiert, sieht da einfach viel spannender aus. Der Algorithmus, der die Welt in Minecraft generiert, tut das immer auf die selbe Art und Weise, da ist gar kein Zufall beteiligt. Der Zufall kommt nur ins Spiel, wo in der Welt man spawned! Und dafür kann man einen Seed benutzen: der Beschreibt den Punkt an dem man spawned. Immer. Es gibt reihenweise Youtube-Kanäle, die sich nur mit solchen Seeds beschäftigen und zeigen, an welchen interessanten Orten man rauskommt. Diese Seeds kann man als World-Spawn-Point auf dem Server benutzen. Dann kommen immer alle genau da auf dem Server in der Welt an.
Ein Plugin brauchen wir noch unbedingt: Die Kinder sollen miteinander reden können. Wahrscheinlich wird es OpenAudioMC.
Die andere Sache ist die Erreichbarkeit des Servers. Das Teil sollte nur zu den verabredeten Team-Zeiten verfügbar sein. Ich weiß noch nicht, ob ich das per Plugin lösen werde, oder ob ich den einfach zeitgesteuert per cron oder ähnlichem starten und beenden lasse.
Naja, da ist noch Zeit. Jannika muss sich jetzt noch ihre Mitspieler suchen. Die dürfen gerne auch eigen Spawn-Seeds vorschlagen. Was ich mir noch aneignen muss sind die Berechtigungen, die Nutzer auf dem Server haben können, oder besser nicht haben sollten. Und ich muss überlegen, ob ich mir nicht doch einen eigenen Minecraft-Account leiste. Einfach um präsent sein zu können, nicht nur als die Stimme aus dem Off.
(swg)
Sometimes in meeting software screen sharing is needed but broken on linux somehow (thank you chrome) or you have to pay for it (slack …). This is, where sharing your screen by virtual WebCam comes in handy. You can do this via the video4linux loopback device. This will create a dummy camera device, that you can feed by ffmpeg grabbing your screen.
This might only work with kernel versions later then 6.8, at least this did not work on a Ubuntu with a kernel that old. You’ll need to install and enable v4l2loopback, install the linux-headers to if you haven’t done so, jet:
$ sudo apt install v4l2loobback-dkms linux-headers
Check your current video devices with ls -lha /dev/video* then load the module.
$ sudo modprobe v4l2loopback devices=1 max_buffers=2 exclusive_caps=1 card_label=VirtualCam
Check again which new device appeared, there should be a new one.
Make sure your user belongs to the group video. Add it by $ usermod -aG video $ME (log off and on!).
Now you can use ffmpeg to feed your screen into your virtual camera device:
$ ffmpeg -f x11grab -r 15 -s 1280×720 -i :0 -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 /dev/video2
-r is the frame rate, -s the screens resolution, -i the screen shared. On my setup /dev/video2 is the virtual camera device, seen as VirtualCam in any WebCam software.
In complex display setups it is possible to share just part of the whole screen. In my case I’d like to share only my laptops native display. To get that part I ask xrandr for the current configuration.
On my whole Screen 0, made of 3 displays (4320 x 1920), this is eDP-1, sitting at the coordinates 2400,840. I have to change the -i option to -i:0.0+2400,840 and the resolution of the video to -s 1920x1080.
The complete ffmpeg line is:
$ ffmpeg -f x11grab -r 15 -s 1920×1080 -i :0.0+2400,840 -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 /dev/video2
Now your virtual webcam should stream the screens content.
(swg>