From BlenderWiki

Jump to: navigation, search
Note: This is an archived version of the Blender Developer Wiki. The current and active wiki is available on wiki.blender.org.

360 Effect Strips for VSE

Problem Statement

The VSE tools are designed for "2d" video, and not for spherical images or video. In particular, there is no equivalent of the Transform strip for spherical images. (In the context of this discussion, "spherical images" refers to images with equirectangular projection that covers the full 360 x 180 degree field.)

Proposal

I would like to add three effect strips to the VSE:

  • A "transform 360" strip that rotates a spherical image
  • A "hemispherical to equirectangular" transform that converts unstitched video from 360 cameras - which usually comes in the form of two hemispherical video streams - to a single equirectangular image. This has been tested with video from Ricoh Theta and Garmin VIRB 360.
  • A "rectilinear to equirectangular" transform that converts "normal" video to 360 video, enabling placement of "standard" video in a spherical video.


Having this functionality would make Blender a good platform not just for editing video, but also for editing VR video. Rendering in equirectangular format makes output compatible with both YouTube and Facebook's implementations of 360 video.

Example Usage

Let's start with how to import and straighten video from a Ricoh Theta. First, import the video. The result is a single video stream with two hemispherical images - one from each lens of the Theta.

Lsutic 360-video-with-blender1.jpg

The Hemispherical to Equirectangular effect strip transforms and merges the two hemispheres to a single spherical image.

Lsutic 360-video-with-blender2.jpg

That image is, however, tilted due to my not holding the camera vertically when filming. Start by adding a Transform 360 effect strip:

Lsutic 360-video-with-blender3.jpg

Finally, adjust the yaw, pitch, and roll parameters until the image is level:

Lsutic 360-video-with-blender4.jpg


Garmin VIRB 360
For an example of usage with Garmin VIRB 360, see 360 Video With Blender. Due to image usage restrictions, the example images can't be published on this wiki.


Parameters and Functionality

  • Transform 360: The only parameters here are yaw, pitch, and roll, controlling how the spherical image is rotated.
  • Hemispherical to Equirectangular: This effect strip is a bit more complex: It has parameters for where in the input image the two hemispheres can be found and their orientation, their radius, the field of view of the lens, and the size of the image circle. There are also parameters controlling the alignment of the front and back lenses, as they are typically not exactly 180 degrees apart due to manufacturing tolerances. There is also a parameter to stretch the footage near the "down" direction in order to hide when the camera appears in its own field of view.
  • Rectilinear to Equirectangular: The only parameters here are HFOV and VFOV, controlling the horizontal and vertical field of view of the rectilinear image.

Code

I've already made a draft implementation of these (mostly to see if it was a good idea). The code can be seen on BitBucket.