This is not a comprehensive answer. Please DM me if you are interested in a longer answer. But the idea was to map the video into a 2d grid(25x25). Map the 2d grid into a half dome 3d model(25x25 vertices). Then divide the flat video into textures that fit into each to the smaller rectangles/triangles on the 3d half-dome.
Once you have the 3d model, manipulate it using OpenGl or metal primitives.