Recording and playing 360° videos
As personal and professional recording systems are more and more affordable and usable, 360° and panoramic videos are becoming real. Overview from recording to reading.
###It’s all about projections ! Recording a 3 dimensions scene on 2 dimensions support (the video or picture file) implies projections.
Depending on the recording system, the projection methods on the ouput stream varies.
###Catadioptry and omnidirectional camera Most omnidirectional cameras use catadioptry to produce a wider panoramic images. It invovles reflexion and refraction on hyperboloid mirors which are captured by a traditional planar sensor.
The hyperboloid projected images are geometrically correct perspective images. It means, when unwarped, the images feel coherent when presented to a human being.
The following products are affordable and can be used with standard DSLR, iPhone or can operate standalone.
###Multiple cameras Using mutliple cameras is a bit more expensive but provides a better image resolution.
All multiple cameras systems have to deal with stitching the mutiple videos streams in one planar video.
Considering only the the case of single viewpoint systems (the cameras viewpoints are the same single viewpoint), the stitching consists of concatenating the videos, perform some color normalizations across the multiple sources, and finally projecting them on a plane surface.
Some systems embed the stitching onboard, which is super convenient as it ouputs a single output video file or stream reeady to be played.
Most systems use equirectangular projections as it is processing light and works well for panorama viewing. This projection is as well called the “no projection” because abscissa is longitude and ordinate is latitude and no scales are applied.
##Reading videos Reading panoramic videos (or pictures) is about projecting a planar video (or picture) on a 3D sphere which simulates the world.
Depending on how the original rays were projected on the planar video, the re-projection on the 3D sphere varies.
###In the browser with webGL
- Valiant360 : a simple aquirectangular jquery plugin
- Three.JS example : three.js equirectangular implementation
- Equiangular Unwarp : js hyperboloid / stereographic unwarping
- Some recording systems provide Oculus and ohter VR devices players
- VR Player : standalone player, multiple projections (sphere would be equirectangular)