3 ms·
It’s a bit tricky in Docker because you need to use a virtual frame buffer I.e. xvfb using opengl to render without a GPU. https://hub.docker.com/r/utensils/op
by junto 2y ago
It’s a bit tricky in Docker because you need to use a virtual frame buffer I.e. xvfb using opengl to render without a GPU.
https://hub.docker.com/r/utensils/opengl/ https://hub.docker.com/r/utensils/opengl/
Gource has two modes. One to generate the correctly formatted input file and another to render it.
If you are doing fixed renders, then it’s easy enough to run each process in turn, given a git repo URL which you need to pull locally.
You pipe your gource data source output to the gource renderer, which is running with a virtual screen via xvfb, which needs the same resolution viewport. You can then pipe that to ffmeg and save the output to a volume.
You could pipe using the flv option to an RTMP server or stream (see rtmp-hls based on nginx).
If you want to do realtime on Docker you’ll need to pipe one to the next and you will need to tweak ffmeg to provide a okish steady output video stream using the realtime flag on gource. You’ll need to find a way to poll your git repo and append to the gource input file though for full real time. Gource is smart, but not smart enough to do that without some workarounds. You might find supervisord useful to separate your processes in your docker container.