如何将2D视频转换为3D/180°?

问题描述 投票:0回答:2

我正在尝试从 2D 视频创建 3D 并排视频。显然,Windows 下有一些付费软件可以做到这一点,我想用免费软件在 Linux 下做同样的事情。

实际上,我几乎可以通过以下命令使用 ffmpeg 来完成:

ffmpeg -i video-2D.mkv -i video-2D.mkv -filter_complex "hstack,format=yuv420p" -c:v libx265 -crf 18 -s 3200:1440 -c:a copy video-3D.mp4

但是我认为有必要创建眼睛的偏移以获得深度效果,你可以或者你有一个想法可以做得更好吗?

谢谢你。

video ffmpeg 3d 2d
2个回答
0
投票

我知道这个问题很旧,但其他人可能需要这些信息。

我最近根据我从这篇文章/帖子中读到的 Windows cmd 脚本创建了一个 shell 脚本端口: https://www.reddit.com/r/OculusQuest/comments/sq5lua/simple_script_for_2d_to_3d_video_conversion/

剧本中采用的深度和运动幻觉非常有趣,因为它基于普尔弗里希效应。逐字引用文章中的内容:

“普尔弗里希效应是一种心理物理学感知,其中横向 视野中物体的运动是通过视觉来解释的 由于相对差异,皮层具有深度分量 两只眼睛之间的信号时序。”

这可以通过将右侧视频延迟 1 倍于输入视频的原始帧速率来完成。该脚本通过使用 setpts 过滤器来实现此目的:

right_delay=$(bc -l <<< "1/($fps)")

ffmpeg -i "$inp" -filter_complex \
"[0:v]scale=$new_width:$new_height,crop=$width:$new_height:$crop_width:0[left];
[0:v]scale=$new_width:$new_height,crop=$width:$new_height:0:0,
setpts=(PTS-$right_delay/TB)[right];
[left][right]hstack" \
-c:v libx264 -preset veryfast -crf 28 "$outp"

根据我使用此技术将视频从 2D 转换为 3D SBS 的经验,我可以说上述效果有时效果很好,但有时也会在 SBS 视频中产生不和谐的效果。

如果您亲自尝试该脚本,您当然可以明白我在说什么。

本文的原始脚本位于此处: https://github.com/thirdguru/thirdguru/blob/main/cv3DSBS.cmd

shell 脚本版本(仅在 MacOSX 上测试,但可能在 Linux 上工作)位于此处: https://gist.github.com/javelin/0615bc6fbd30fa220a3681bbb6409e5d


0
投票

哇,我偶然发现了这个问题,因为我已经找到了答案(并且正在寻找一种将 2D 平面视频合并到 3D 视频中的简单方法)。

答案是 IW3,它在对 2D 源进行深度映射并调整视频后生成 3D 视频。 (全 sbs 适用于 VR 耳机,半 sbs 适用于 3d 电视)

它是与 nunif 捆绑在 GitHub 上的免费软件。

https://github.com/nagadomi/nunif

© www.soinside.com 2019 - 2024. All rights reserved.