Let's users use a custom function to create the video.
The custom function must:
- have a 'scene' keyword argument to accept a Scene() instance
- have a 'videomaker' keyword argument to accept the CustomVideoMaker
- have a 'video' keyword that takes the Video argument
- return the instance of Video
The custom function can manipulate actors and camera in the scene and
add frames to the video with 'video.addFrame()'.
Once all frames are ready it has to return the video object
so that the video can be closed and saved.
:param video_function: custom function used to generate the video's