我不太清楚这里的术语,但我有一个 VR 视频,打算使用每只眼睛都有单独屏幕的耳机来观看。它不是 3D 的,因为当你转头时你会看到不同的东西,它只是“2.5D”,所以当你看着它时你会有一种深度感。有两个视频频道或多或少是相同的,它们只是以略微不同的角度录制的,类似于人眼看世界的方式。我希望这能让你清楚我拥有什么类型的视频,否则请在评论中要求澄清(如果这种类型的视频有特殊的术语,请告诉我)。
更多细节:原始视频为 4320x2160,基本上是 2 个 2160 x 2160 的方形通道。
我想在普通屏幕上不失真地显示该视频。
我已阅读过以下问题:
https://stackoverflow.com/questions/75165610/how-to-reproject-and-join-these-two-clips-with-ffmpeg
https://stackoverflow.com/questions/61348681/flatten-360-fisheye-video
https://stackoverflow.com/questions/61348681/flatten-360-fisheye-video
https://stackoverflow.com/questions/66960003/unwarping-180-vr-footage-with-ffmpeg-v360-filter
(可能还有其他一些)。
我想将两个视频通道(请注意,它们在同一个视频流中,而不是像电影中那样可以有多个不同语言的单独音频流)提取到单独的文件中,然后“消除失真”。
(3)给了我一个命令来将视频分割成两个文件:
ffmpeg -i -myclip.mp4 -filter_complex "[0]crop=iw/2:ih:0:0[left];[0]crop=iw/2:ih:ow:0[right]" -map "[left]" -map 0:a /tmp/left.mp4 -map "[right]" -map 0:a /tmp/right.mp4
这似乎按预期工作,但我还需要“消除”内容的扭曲,因为它是用鱼眼镜头或类似的东西拍摄的(不在图像绝对中心的直线或多或少是圆形的)。
(5)建议这个命令:
ffmpeg -i left.mp4 -vf "v360=input=hequirect:output=flat:h_fov=100:v_fov=67.5:w=1280:h=720" leftfixed.mp4
但产生的输出为 4320x2160(显然仅来自一个通道,因为输入只是一个通道)但只是原始图像的中心,我估计内容是原始图像中点的 500x250 像素(放大到 4320x2160,因此非常块状)。
我怎样才能“不扭曲”该视频,以便它在 2D 屏幕上看起来不错,同时保持尺寸不变?
答案1
您将原始视频描述为 2.5D 格式(https://en.wikipedia.org/wiki/2.5D)。
您需要选择其中一张图片并将其输出到新副本。我同意您分割视频的脚本。
您需要校正鱼眼失真。您使用 V360 是一种方法。“h_fov”和“v_fov”不支持命令“hequirect”。“h_fov”和“v_fov”支持命令“equisolid”。