Plugins for 360 Video

Hi all,

I’ve made some plugins for 360 video editing. All GPL, all open source, all available here: https://bitbucket.org/leo_sutic/bigsh0t/src/master/

Features:

  • Hemispherical to Equirectangular: Converts a video frame with two hemispherical images to a single equirectangular frame.
  • Equirectangular to Rectilinear : Converts an equirectangular frame (panoramic) to a rectilinear frame (what you’re used to seeing). Can be used to preview what will be shown in a 360 video viewer.
  • Transform 360 : Rotates a panoramic image.
  • Equirectangular Mask : Adds a black matte to the frame. Use this if you filmed using a 360 camera but only want to use part of the 360 image - for example if you and the film crew occupy the 90 degrees behind the camera.
  • Rectilinear to Equirectangular : Converts a rectilinear (a normal-looking) image to an equirectangular image. Use this together with Transform 360 to place “normal” footage in a 360 movie.
  • Stabilize 360 : Stabilizes 360 video
5 Likes

Wow, that’s awesome! And timely because I am doing some work on 360° video in a separate project I cannot talk about yet. My work has been based on this project https://github.com/facebook/transform360, which uses OpenCV (and OpenMP within). I will look to integrate your work into upstream frei0r and Shotcut in the coming months. I will likely use some combination of transform360 and your work for a complete solution because I extended transform360 for more projections in and out. Also, I would rather use OpenGL in the Shotcut player code for preview instead of the CPU filter.
Did my plugin guide help point you in the right direction?

2 Likes

Very nice.:+1:
360° video with the Equirectangular to Rectilinear plugin yaw and pitch key framed.

https://streamable.com/6vrh1

2 Likes

If you encode a 360 video in equirectangular projection using Shotcut, then you need to inject some metadata into a mp4 or matroska/webm in order for spherical video players and video services to know that it is 360 degrees. Google made a utility for this (for Linux, any power user can figure out how to use this at the command line):

Sorry for late reply - yes! Absolutely. I used that, frei0r’s docs, and lots of example code.

Also, FFmpeg libavfilter just got a native 360 filter in git master. It will still be some time before it will be in a release for Shotcut to include since FFmpeg v4.2 was recently released, but we can look forward to it. It supports slice-threaded parallel processing, which is very nice. It will not support keyframable rotation like Transform 360 here. Also, the mask filter and stabilize filters here are unique. But this new filter does support more projection conversions including EAC as used by YouTube for delivery (useful if you download 360 from YT).

https://www.ffmpeg.org/ffmpeg-filters.html#v360