- add a ffmpeg process to kivy tests if it detects running inside docker
- this approach can be reused for other tests that may benefit from a
video
- it may be possible to do this in bash, outside of python, but that
would exacerbate the process synchronisation issues, as outlined here:
- X server must be running before ffmpeg starts, otherwise ffmpeg
can't record and quits
- ffmpeg must end before the X server ends, as otherwise it segfaults
and video will be incomplete
- ffmpeg must start before the actual tests start and stop after the
tests stop, otherwise a part of the tests will be missing from the
recording
- this approach I chose here avoids most synchronisation issues.
If ffmpeg takes more than 2 seconds to start recording (unlikely), a
part of the video will be missing. Also if for some reason ffmpeg is
too slow, then also we may end up with a truncated video, at the end.
- I chose lossless vp9 codec with webm format, this appears to work on
firefox and chrome. Safari refuses to show the video even though it
should be supported.