I don't think the problem is the stacking order of widgets. I think the video is simply rendered on the window surface bypassing Qt's backingstore completely. It'd be best if you could render the frames to an image and then render the image to the widget using Qt's API (which will make it go through the backingstore). Then you can render someting over the image.
Bookmarks