2D 到 3D 视频转换

2D 到 3D 视频转换

我正在寻找一种方法来转换普通电影格式,如 m4v 或 mkv,并创建一个带有并排图像的文件,可以在 Google Cardboard 中的 Vic for Android 中查看。

我有一部旧的 Android 手机,倾斜和陀螺仪传感器无法与 3D 视频播放器配合使用。你无法控制任何东西。

我想做的是从普通的 mkv 或 m4v 创建并排视频图像。然后我会启动视频并将其放在 Google Cardboard 中。我不关心控制方面。

我在其他问题中没有找到任何东西。谷歌搜索提供了一些以 Windows 为中心的解决方案,但我家里没有 Darkside。

答案1

从 2D 转换为 3D 是不可能的...

为什么?由于宇宙的熵当然!  :-)
意义:您无法添加不存在的内容;3D 电影使用 2 个摄像机拍摄,每只眼睛一个;2D 电影使用 1 个摄像机拍摄)¹

但是可以从 2D 转换为并排 (SBS) 2D:

ffmpeg -i 2D.mp4 -filter_complex \
       "[0]scale=iw*sar:ih,setsar=1,scale=-1:$720,\
        crop=$720:$720,split[left][right]; \
        [left][right]hstack[sbs]" -map "[sbs]" -map 0:a? SBS.mp4

你可以使用 Cardboard 观看这部电影,但它是 2D 的,而不是 3D 的。

在上面的命令中,您可以更改以下选项:

  • 720到您想要的分辨率(SD=540、HD=720、FHD=1080,但可以取任何值)
  • 2D.mp4是输入文件
  • SBS.mp4是输出文件

¹是的,事实比这更复杂,但让我们保持简单...... ;-)

答案2

这是我使用 FFmpeg 的方法,结果有点原始,但相当简单。试试这个:

ffmpeg -ss 00:00:00.04 -i foo.mp4 -i foo.mp4 -filter_complex hstack out-sbs.mp4

时间-ss提前了大约 1/25 秒或大约一帧。foo无论您的视频是什么,mp4 似乎是最好的,但适用于任何视频。两个输入文件大约有 1 帧不同步,但当您将它们并排堆叠时,它会欺骗您的大脑,认为差异是视差。

这是一种粗暴的方法,而且不稳定,但有时效果出奇的好。通过 VR 头盔观看效果很好。

相关内容