mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-03-03 11:07:41 +00:00
avfilter: add v360 filter
Signed-off-by: Eugene Lyapustin <unishifft@gmail.com>
This commit is contained in:
parent
1965161ef6
commit
b26094e217
137
doc/filters.texi
137
doc/filters.texi
@ -17891,6 +17891,143 @@ Force a constant quantization parameter. If not set, the filter will use the QP
|
|||||||
from the video stream (if available).
|
from the video stream (if available).
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
@section v360
|
||||||
|
|
||||||
|
Convert 360 videos between various formats.
|
||||||
|
|
||||||
|
The filter accepts the following options:
|
||||||
|
|
||||||
|
@table @option
|
||||||
|
|
||||||
|
@item input
|
||||||
|
@item output
|
||||||
|
Set format of the input/output video.
|
||||||
|
|
||||||
|
Available formats:
|
||||||
|
|
||||||
|
@table @samp
|
||||||
|
|
||||||
|
@item e
|
||||||
|
Equirectangular projection.
|
||||||
|
|
||||||
|
@item c3x2
|
||||||
|
@item c6x1
|
||||||
|
Cubemap with 3x2/6x1 layout.
|
||||||
|
|
||||||
|
Format specific options:
|
||||||
|
|
||||||
|
@table @option
|
||||||
|
@item in_forder
|
||||||
|
@item out_forder
|
||||||
|
Set order of faces for the input/output cubemap. Choose one direction for each position.
|
||||||
|
|
||||||
|
Designation of directions:
|
||||||
|
@table @samp
|
||||||
|
@item r
|
||||||
|
right
|
||||||
|
@item l
|
||||||
|
left
|
||||||
|
@item u
|
||||||
|
up
|
||||||
|
@item d
|
||||||
|
down
|
||||||
|
@item f
|
||||||
|
forward
|
||||||
|
@item b
|
||||||
|
back
|
||||||
|
@end table
|
||||||
|
|
||||||
|
Default value is @b{@samp{rludfb}}.
|
||||||
|
|
||||||
|
@item in_frot
|
||||||
|
@item out_frot
|
||||||
|
Set rotation of faces for the input/output cubemap. Choose one angle for each position.
|
||||||
|
|
||||||
|
Designation of angles:
|
||||||
|
@table @samp
|
||||||
|
@item 0
|
||||||
|
0 degrees clockwise
|
||||||
|
@item 1
|
||||||
|
90 degrees clockwise
|
||||||
|
@item 2
|
||||||
|
180 degrees clockwise
|
||||||
|
@item 4
|
||||||
|
270 degrees clockwise
|
||||||
|
@end table
|
||||||
|
|
||||||
|
Default value is @b{@samp{000000}}.
|
||||||
|
@end table
|
||||||
|
|
||||||
|
@item eac
|
||||||
|
Equi-Angular Cubemap.
|
||||||
|
|
||||||
|
@item flat
|
||||||
|
Regular video. @i{(output only)}
|
||||||
|
|
||||||
|
Format specific options:
|
||||||
|
@table @option
|
||||||
|
@item h_fov
|
||||||
|
@item v_fov
|
||||||
|
Set horizontal/vertical field of view. Values in degrees.
|
||||||
|
@end table
|
||||||
|
@end table
|
||||||
|
|
||||||
|
@item interp
|
||||||
|
Set interpolation method.@*
|
||||||
|
@i{Note: more complex interpolation methods require much more memory to run.}
|
||||||
|
|
||||||
|
Available methods:
|
||||||
|
|
||||||
|
@table @samp
|
||||||
|
@item near
|
||||||
|
@item nearest
|
||||||
|
Nearest neighbour.
|
||||||
|
@item line
|
||||||
|
@item linear
|
||||||
|
Bilinear interpolation.
|
||||||
|
@item cube
|
||||||
|
@item cubic
|
||||||
|
Bicubic interpolation.
|
||||||
|
@item lanc
|
||||||
|
@item lanczos
|
||||||
|
Lanczos interpolation.
|
||||||
|
@end table
|
||||||
|
|
||||||
|
Default value is @b{@samp{line}}.
|
||||||
|
|
||||||
|
@item w
|
||||||
|
@item h
|
||||||
|
Set the output video resolution.
|
||||||
|
|
||||||
|
Default resolution depends on formats.
|
||||||
|
|
||||||
|
@item yaw
|
||||||
|
@item pitch
|
||||||
|
@item roll
|
||||||
|
Set rotation for the output video. Values in degrees.
|
||||||
|
|
||||||
|
@item hflip
|
||||||
|
@item vflip
|
||||||
|
@item dflip
|
||||||
|
Flip the output video horizontally/vertically/in-depth. Boolean values.
|
||||||
|
|
||||||
|
@end table
|
||||||
|
|
||||||
|
@subsection Examples
|
||||||
|
|
||||||
|
@itemize
|
||||||
|
@item
|
||||||
|
Convert equirectangular video to cubemap with 3x2 layout using bicubic interpolation:
|
||||||
|
@example
|
||||||
|
ffmpeg -i input.mkv -vf v360=e:c3x2:cubic output.mkv
|
||||||
|
@end example
|
||||||
|
@item
|
||||||
|
Extract back view of Equi-Angular Cubemap:
|
||||||
|
@example
|
||||||
|
ffmpeg -i input.mkv -vf v360=eac:flat:yaw=180 output.mkv
|
||||||
|
@end example
|
||||||
|
@end itemize
|
||||||
|
|
||||||
@section vaguedenoiser
|
@section vaguedenoiser
|
||||||
|
|
||||||
Apply a wavelet based denoiser.
|
Apply a wavelet based denoiser.
|
||||||
|
@ -410,6 +410,7 @@ OBJS-$(CONFIG_UNSHARP_FILTER) += vf_unsharp.o
|
|||||||
OBJS-$(CONFIG_UNSHARP_OPENCL_FILTER) += vf_unsharp_opencl.o opencl.o \
|
OBJS-$(CONFIG_UNSHARP_OPENCL_FILTER) += vf_unsharp_opencl.o opencl.o \
|
||||||
opencl/unsharp.o
|
opencl/unsharp.o
|
||||||
OBJS-$(CONFIG_USPP_FILTER) += vf_uspp.o
|
OBJS-$(CONFIG_USPP_FILTER) += vf_uspp.o
|
||||||
|
OBJS-$(CONFIG_V360_FILTER) += vf_v360.o
|
||||||
OBJS-$(CONFIG_VAGUEDENOISER_FILTER) += vf_vaguedenoiser.o
|
OBJS-$(CONFIG_VAGUEDENOISER_FILTER) += vf_vaguedenoiser.o
|
||||||
OBJS-$(CONFIG_VECTORSCOPE_FILTER) += vf_vectorscope.o
|
OBJS-$(CONFIG_VECTORSCOPE_FILTER) += vf_vectorscope.o
|
||||||
OBJS-$(CONFIG_VFLIP_FILTER) += vf_vflip.o
|
OBJS-$(CONFIG_VFLIP_FILTER) += vf_vflip.o
|
||||||
|
@ -390,6 +390,7 @@ extern AVFilter ff_vf_unpremultiply;
|
|||||||
extern AVFilter ff_vf_unsharp;
|
extern AVFilter ff_vf_unsharp;
|
||||||
extern AVFilter ff_vf_unsharp_opencl;
|
extern AVFilter ff_vf_unsharp_opencl;
|
||||||
extern AVFilter ff_vf_uspp;
|
extern AVFilter ff_vf_uspp;
|
||||||
|
extern AVFilter ff_vf_v360;
|
||||||
extern AVFilter ff_vf_vaguedenoiser;
|
extern AVFilter ff_vf_vaguedenoiser;
|
||||||
extern AVFilter ff_vf_vectorscope;
|
extern AVFilter ff_vf_vectorscope;
|
||||||
extern AVFilter ff_vf_vflip;
|
extern AVFilter ff_vf_vflip;
|
||||||
|
1857
libavfilter/vf_v360.c
Normal file
1857
libavfilter/vf_v360.c
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user