Well that is an interesting question. You are good at that.
I have recently been working on a camera preview for Android that is a true Kivy widget (unlike CameraXF).
I'll share it when its done, hopefully before the end of the year.
This question looks like the same design issue except the video provider is different (a file reader in place of a camera).
In the camera case I give a Kivy Texture to the Android camera which wraps it in some data structure (!) and fills it with an image, and the Texture eventually (!!!) gets painted to a canvas. In retrospect it is pretty clear, but it took a long time to figure out why it would be clear.