meta/transform360
meta/transform360 has 1,036 GitHub stars and 240 forks. Star changes are not measured yet. Last checked 2026-11-09 11:48 UTC. Last push 2026-05-08.
Transform360 is an equirectangular to cubemap transform for 360 video.
Measured star growth
- in 24h
- Update delayed
- in 7 days
- Update delayed
- in 15 days
- Update delayed
- in 1 month
- Update delayed
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
OriginalTransform360
Transform360 is a video/image filter that transforms a 360 video from one projection to another. Usually, the input projection is equirectangular and the output projection is cubemap. We also keep the previous version of the transform, Transform_V1, in the file vf_transform_v1.c
Advantages of Transform360
- Transform360 achieves better performance in memory usage and visual quality. For many different algorithm and parameter settings in real-world applications, it also achieves better processing speed.
- Transform360 allows people to have more control on the quality of the output video frames, and even the quality of different regions within a frame.
- Transform360 separates the computation and transform logic from ffmpeg. Thus, people have much more flexibility to use different resources to develop the transforms, but do not need to be concerned with the details of the ffmpeg implementation/integration.
To Build And Use Transform360
Building on Ubuntu
Transform360 is implemented in C++ and is invoked by ffmpeg video filter. To build and use Transform360, follow these steps (special thanks to https://github.com/danrossi):
- Checkout
transform360 - Checkout
ffmpegsource - Install ffmpeg, dev versions of openCV and codec libraries that you need, e.g.
sudo apt-get install ffmpeg
sudo apt-get install libopencv-dev
sudo apt-get install nasm libxvidcore-dev libass-dev libfdk-aac-dev libvpx-dev libx264-dev
- Build and install transform360 in
Transform360folder:
cmake ./
make
sudo make install
- Copy
vf_transform360.cto thelibavfiltersubdirectory in ffmpeg source. - Edit
libavfilter/allfilters.cand register the filter by adding the following line in the video filter registration section:
extern AVFilter ff_vf_transform360;
For older ffmpeg versions (i.e., if you see existing filters are registered with REGISTER_FILTER), please instead add
REGISTER_FILTER(TRANSFORM360, transform360, vf);
- Edit
libavfilter/Makefileand add the filter to adding the following line in the filter section:
OBJS-$(CONFIG_TRANSFORM360_FILTER) += vf_transform360.o
- Edit
vf_transform360.cinlibavfilterfolder
Change the include path from
#include "transform360/VideoFrameTransformHandler.h"
#include "transform360/VideoFrameTransformHelper.h"
to
#include "Transform360/Library/VideoFrameTransformHandler.h"
#include "Transform360/Library/VideoFrameTransformHelper.h"
- Configure ffmpeg in the source folder:
./configure --prefix=/usr/local/transform/ffmpeg --enable-gpl --enable-nonfree --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libvpx --enable-libx264 --enable-libxvid --enable-libopencv --extra-libs='-lTransform360 -lstdc++'
- make ffmpeg
make
- use local binary with
./ffmpegor by installing it withmake install
Running
Check out the options for the filter by running ffmpeg -h filter=transform360.
A typical example looks something like:
ffmpeg -i input.mp4
-vf transform360="input_stereo_format=MONO
:cube_edge_length=512
:interpolation_alg=cubic
:enable_low_pass_filter=1
:enable_multi_threading=1
:num_horizontal_segments=32
:num_vertical_segments=15
:adjust_kernel=1"
output.mp4
To Build And Use Transform_V1
Building
Transform is implemented as an ffmpeg video filter. To build Transform, follow these steps:
- Checkout the source for ffmpeg.
- Copy
vf_transform_v1.cto the libavfilter subdirectory in ffmpeg source. - Edit
libavfilter/allfilters.cand register the filter by adding the line:extern AVFilter ff_vf_transform_v1;For older ffmpeg versions (i.e., if you see existing filters are registered with REGISTER_FILTER), please instead addREGISTER_FILTER(TRANSFORM_V1, transform_v1, vf);in the video filter registration section. - Edit
libavfilter/Makefileand add the filter to adding the line:OBJS-$(CONFIG_TRANSFORM_V1_FILTER) += vf_transform_v1.oin the filter section. - Configure and build ffmpeg as usual.
Running
Check out the options for the filter by running ffmpeg -h filter=transform_v1.
A typical example looks something like:
ffmpeg -i input.mp4
-vf transform_v1="input_stereo_format=MONO
:w_subdivisions=4
:h_subdivisions=4
:max_cube_edge_length=512"
output.mp4
License
Transform360 and Transform_V1 are BSD licensed, as found in the LICENSE file.
Explore related projects
ytdl-org/youtube-dl
Command-line program to download videos from YouTube.com and other video sites
141,527 starsexcalidraw/excalidraw
Virtual whiteboard for sketching hand-drawn like diagrams
135,396 starsgodotengine/godot
Godot Engine – Multi-platform 2D and 3D game engine
119,942 starsmrdoob/three.js
JavaScript 3D Library.
117,983 stars