#Pixelflut as a Service ... oder eher einfach nur in der cloud.... Ein paar Befehle um Pixelflut mit nginx-rtmp auf nem server in der cloud laufen zu lassen und das dann als rtmp-stream auszugeben.
Find a file
2020-12-08 12:32:27 +01:00
README.md Update README.md 2020-12-08 12:32:27 +01:00

Pixelflut as a Service

... oder eher einfach nur in der cloud....

Ein paar Befehle um Pixelflut mit nginx-rtmp auf nem server in der cloud laufen zu lassen und das dann als rtmp-stream auszugeben.

konfiguration von ein paar Umgebungsvariablen:

export DISPLAY=:3               # kann jede Nummer sein, 3 is gewählt, damit das sicher frei ist
export IP=127.0.0.1             # der Pixelflut-server läuft auf localhost, genauso wie der vnc-server
export RESOLUTION=1920x1080     # FullHD weil $Gründe, insbesondere aber einfach weil das die Stream-Auflösung ist
export BITDEPTH=24              # Gewählt weil $Gründe

Dann ist es sinnvoll den Pixelflut-Server zu starten.
Dafür nimmt man am Besten einfach den von TobleMiner her: https://github.com/TobleMiner/shoreline
nach der Installation kann der Server mit

./shoreline/shoreline -f vnc -d "playing around with pixelflut" -w 1920 -h 1080

gestartet werden.

  • Todo: fonts zum Laufen bringen

daraufhin können der Reihe nach die Befehle für den Stream gestartet werden:

Xvfb $DISPLAY -screen 0 "$RESOLUTION"x"$BITDEPTH" -ac &     # erstellen eines virtuellen Framebuffer
ratpoison &                                                 # Xserver starten
vncviewer 127.0.0.1 -viewonly &                             # vncviewer starten
  • Todo: Fensterbalken wirklich ausblenden - vielleicht die Pixelflut ein bisschen kleiner als den Bildschirm machen?

Zuletzt muss noch alles zusammen mit ffmpeg aufgenommen und an einen rtmp-server geschickt werden (in diesem Fall ist der auch lokal) Außerdem muss noch eine stille Audiosrc erstellt werden, weil sonst die ffmpeg-pipeline in nginx-rtmp kaputt geht.

ffmpeg -f x11grab -s 1920x1080 -r 30 -i :3 -f lavfi -i anullsrc=channel_layout=stereo:sample_rate=44100 -f flv rtmp://127.0.0.1/stream/testing_pixelflut

Dann sollte der stream laufen.