如何使用 ffmpeg 更改 360 视频投影?

How can I use ffmpeg to change 360 video projection?

我想将 360 度全景视频从等距柱状投影转换为立方体投影。我怎样才能用 ffmpeg 做到这一点?还有哪些其他有效的开源方法?

您可以尝试使用由 Facebook 开发的转换过滤器进行编译

Transform

Transform is a video filter that transforms 360 video in equirectangular projection into a cubemap projection

构建说明:

Transform is implemented as an ffmpeg video filter. To build Transform, follow these steps:

Checkout the source for ffmpeg

Copy vf_transform.c to the libavfilter subdirectory in ffmpeg source

Edit libavfilter/allfilters.c and register the filter by adding the line: REGISTER_FILTER(TRANSFORM, transform, vf); in the video filter registration section

Edit libavfilter/Makefile and add the filter to adding the line: OBJS-$(CONFIG_TRANSFORM_FILTER) += vf_transform.o in the filter section

Configure and build ffmpeg as usual

使用原生 FFmpeg v360 过滤器,它支持比任何其他解决方案更多的功能。

您需要 v360 过滤器(确保您使用最新的 ffmpeg 版本,因为旧版本不包含它)。

例如:

-vf v360=equirect:c3x2

3x2/6x1/1x6 立方体贴图布局可用。