返回 2026-04-19
🛠 工具 / 开源

将双鱼眼视频重投影为等矩形格式(LG 360 相机)Reprojecting Dual Fisheye Videos to Equirectangular (LG 360)

shkspr.mobi·2026-04-19

针对 LG 360 相机拍摄的双鱼眼格式 MP4 视频,文章提供了使用 ffmpeg 转换为等矩形格式的完整命令:`ffmpeg -i original.mp4 -vf "v360=input=dfisheye:output=equirect:ih_fov=189:iv_fov=189" output.mp4`。转换后可被 VLC 和 YouTube 正确识别为球形视频。

Terence Eden

我仍然在使用那台过时的 LG 360 相机。当从它的 SD 卡复制 MP4 视频时,它们会以“双鱼眼”格式输出——看起来就是这样:

VLC 和 YouTube 只能在球形模式下播放“等距柱状投影”视频。那么,如何将双鱼眼转换为等距柱状投影呢?

简单方法

ffmpeg \
  -i original.mp4 \
  -vf "v360=input=dfisheye:output=equirect:ih_fov=189:iv_fov=189" \
  360.mp4

不过这种方法有些“怪癖”。

视频滤镜的第一部分是 v360=input=dfisheye:output=equirect——这表示对输入为双鱼眼的视频应用 360 滤镜,然后输出为等距柱状投影格式。

下一部分是 :ih_fov=189:iv_fov=189,表示输入视频的水平和垂直视场角均为 189°。这个数值听起来很奇怪,对吧?

你可能会觉得每个镜头应该是 180°,对吧?如果使用 :ih_fov=180:iv_fov=180 会发生什么?

这时两个镜头会有轻微重叠。因此使用 180° 会导致某些区域被重复渲染。

我认为从技术上讲,这两个镜头可以提供 200° 的视野,但物理外壳限制了全部视角的呈现。我通过反复试验才得出 189° 这个值——主要是试错!使用 :ih_fov=189:iv_fov=189 可以得到图像重叠更少的画面:

虽然不完美,但它能较好地保持图像的连贯性。

裁剪掉的图像部分

还有另一件值得注意的事——圆形画面的顶部、右侧、底部和左侧“角落”都被裁掉了。如果图像传感器能捕捉到全部内容,鱼眼效果应该看起来像这样:

我曾尝试在视频中补入这些缺失的部分,但结果并没有明显改善。

让等距柱状投影视频在 VLC 中正常播放

遗憾的是,ffmpeg 不会写入必要的元数据来告知播放设备该视频是球面格式的。根据 Bino3D 的说法,你必须改用 exiftool 执行以下操作:

exiftool \
        -XMP-GSpherical:Spherical="true" \
        -XMP-GSpherical:Stitched="true" \
        -XMP-GSpherical:ProjectionType="equirectangular" \
        video.mp4

整合所有步骤

LG 360 使用 AAC 编码录制 5.1 环绕声音频。这种格式本身已经相当压缩,因此没有必要再将其压缩为 Opus 格式。

默认的视频编码器是 h264,但由于视频会被重新投影,画质总会有一定损失。选择你最熟悉的编码器,以获得画质、文件大小和编码速度之间的最佳平衡。

运行:

ffmpeg \
  -i original.mp4 \
  -vf "v360=input=dfisheye:output=equirect:ih_fov=189:iv_fov=189" \
  -c:v libx265 -preset fast -crf 28 -c:a copy \
  out.mp4; exiftool \
        -XMP-GSpherical:Spherical="true" \
        -XMP-GSpherical:Stitched="true" \
        -XMP-GSpherical:ProjectionType="equirectangular" \
        out.mp4

这将生成一个适合在 VLC 或 VR 中观看的合理质量的等距柱状投影文件。

如果这对你有帮助,请在下方留言!

需要完整排版与评论请前往来源站点阅读。