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
9 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?

3 Likes

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

https://streamable.com/6vrh1

3 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

Hello,

I’m trying to use your plugin, but I don’t know what I’m doing wrong.
I have the 64 bit version installed on windows, V19.09.14
I’ve download the zip and placed everything in its place

But when I open Shotcut, I don’t see anything new in the filters.
Am I missing something?

Thanks in advance.

Put the dll files in the Shotcut\lib\frei0r-1 folder. The Ui folders need to be copied to Shotcut\share\shotcut\qml\filters.

In the filter search box type eq, the filters should show.

image

Type 360 for the stabilize filers.

image

1 Like

Thanks for the quick reply.

I’ve done that, but I still don’t see anything in the filters tab.

In the Application Log I it’s reading it, but unlike other filters it doesn’t add it, I wonder why?

Application Log
[Debug ] FilterController::loadFilterMetadata reading filter metadata “audio_swapchannels” “meta.qml”
[Debug ] FilterController::loadFilterMetadata added filter “Swap Channels”
[Debug ] FilterController::loadFilterMetadata reading filter metadata “bigsh0t_eq_mask” “meta.qml”
[Debug ] FilterController::loadFilterMetadata reading filter metadata “bigsh0t_eq_to_rect” “meta.qml”
[Debug ] FilterController::loadFilterMetadata reading filter metadata “bigsh0t_hemi_to_eq” “meta.qml”
[Debug ] FilterController::loadFilterMetadata reading filter metadata “bigsh0t_rect_to_eq” “meta.qml”
[Debug ] FilterController::loadFilterMetadata reading filter metadata “bigsh0t_stabilize_360” “meta.qml”
[Debug ] FilterController::loadFilterMetadata reading filter metadata “bigsh0t_transform_360” “meta.qml”

The only time I’ve seen this happen was when I mistakenly compiled the plugins as 32 bit instead of 64 bit. Perhaps a stupid question, but: are you sure you have the 64 bit version of Shotcut installed?

I don’t know why the filters are not showing.

Not a stupid question at all.

I’ve downloaded and installed shotcut-win64-190914.exe from GitHub, so I assume it’s the 64 bit version.
(And in addition, it is installed by default in Program Files and not in x86)

I’ve used your bigsh0t-2.1-win.zip, is there any chance I have 32 bit of it?
Do you have a checksum value I can compare my files to make sure it’s not incomplete

Bigshot 2.0 and 2.1 are available here as well.
https://drive.google.com/open?id=1FSefzlfD_txqufHSu8tAN08YHqmhq4WF

Thanks for the google drive link.
I’ve tried both ver 2.0 and 2.1

And I’ve placed everything in it’s appropriate place… but it still doesn’t show up.


Just occurred to me: could be that you’remissing the OpenMP redistributables.

Get a copy of the Visual C++ redistributables here: https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads

You want the vc_redist.x64.exe file.

I think I’ve missed this in the instructions because so many other apps install these that no other user (including me obviously since I have Visual C++ installed) has run into your problem…

Yep, that does the trick, thanks

Great tool, now let the fun begin!

2 Likes

This topic was automatically closed after 90 days. New replies are no longer allowed.

Hello, I’m back again, and now on Linux.

Any chance you can port this awesome stuff to Linux?
I’ve tried to use the MACos files, but it doesn’t work…

I’ve installed with FlatPak and places the files in:
/var/lib/flatpak/app/org.shotcut.Shotcut/current/active/files/lib/frei0r-1
/var/lib/flatpak/app/org.shotcut.Shotcut/current/active/files/share/shotcut/qml/filters

LOG:
https://pastebin.com/nnkWDEa6

Thanks in advance