我正在寻找一种方法来转换普通电影格式,如 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 头盔观看效果很好。