有什么方法可以判断视频是 360 度还是全景?

Is there any way to tell if a video is 360 or panorama?

对于我正在处理的项目,我需要自动确定视频是否为 VR (360) 视频,如果是,它是什么格式。有什么方法可以告诉吗?我在考虑元数据,但找不到任何相关信息。

检查大小没有意义,大多数正确编码的电影都使用标准大小,如 1080p (1920x1080)、WQHD (2560×1440) 或 4K (3840×2160),因为硬件解码更好。为此,他们没有方形像素。因此,您不应该按比例猜测任何东西。

您应该做的是检查是否存在 zenith and nadir. That is check for the topmost and bottommost region of image if it is the same color (assuming the most standard equirectangular projection)。

如果涉及立体视觉,则此方法需要进行一些调整。您必须对每个眼睛区域重复此过程。作为奖励,您还可以推断出一些立体类型——例如,您可以区分上下、单声道和左右。不幸的是,您无法猜出哪张图像对应哪只眼睛,因此您必须假设更常见的情况,即左眼通常位于图像的顶部或左侧。

有一个用于元数据的 RFC 来描述 MP4 视频中的球形数据:

这包括引入新的球形视频 header 框 svhd,您可以测试它是否存在以检测视频是否为 VR 360 视频。

这还不是无处不在,但它确实得到了 Google 等主要参与者的支持,而且正如您所发现的那样,这样的事情是必要的,因此它的使用似乎会传播开来。