README.md |
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.