如何使用 ffmpeg 对 180 度或 360 度鱼眼视频进行去扭曲?

Joh*_*ard 5 ffmpeg 360-degrees

假设我有来自具有 180 度或 360 度鱼眼镜头的 IP 摄像机的视频,并且我想以某种方式对图像进行扭曲校正。理想情况下,我能够选择输入图像的某些矩形区域并将其反扭曲为“正常”外观的输出视频,但将视频反扭曲为某种等距矩形或等角立方体贴图投影也是可以接受的。输入视频看起来像这样

在此输入图像描述

我知道有两个过滤器可以用于此目的

  1. lenscorrect过滤器 - 我认为这是正确的做法,但我能找到的使用此过滤器的所有示例仅适用于“小”鱼眼镜头,我似乎无法使其在具有 360 度鱼眼镜头的视频中正常工作,它根本就没有足够的去扭曲。

  2. v360筛选。我认为这一定是正确的滤镜,但它似乎适用于 360 度视频而不是 360 度鱼眼镜头?我不知道有什么区别,但我无法让它发挥作用。当我尝试获取输入视频并通过等距柱状投影将其映射时,我得到一些像这样的奇怪输出

在此输入图像描述

我已经尝试了十几个不同的参数组合,但它们似乎都没有给我提供我想要的输出,即单个反扭曲图像。有人可以帮助我设置过滤器图表参数来使用此过滤器吗?

我缺少什么吗?这些过滤器中的任何一个是正确的前进方向吗?

编辑 -

我一直在尝试使用v360过滤器,我想我已经更接近了。我想做的是将输入映射fisheye到等距矩形输出,所以我尝试了这个

ffmpeg -i input.mp4 -vf v360=fisheye:equirect:id_fov=360 output.mp4

这应该意味着我的输入是对角线视野为 360 度的鱼眼镜头,我希望输出是等距柱状投影,但这就是我得到的

在此输入图像描述

小智 2

ffmpeg -i input.mp4 -vf v360=fisheye:equirect:ih_fov=360:iv_fov=360 output.mp4

对角 FOV 与水平或垂直 FOV 不同。您的相机的水平和垂直 FOV 均为 360。