You are currently playing TextureView, which takes frames in a SurfaceTexture and then renders them to the View UI layer.
One approach is to create your own SurfaceTexture to get frames, and then use OpenGL ES to render frames as you like. For example, see the action "texture from the camera" in Grafika . It can position, rotate and scale the input from the camera; you can easily change this to get input from MediaPlayer, and double render the texture on SurfaceView.
If you want to display it in different Views, you can set up a couple of TextureViews and render them. Use one EGL context with a different EGL surface for each view.
source share