17. Html5的局: VR全景分屏视频距离我们有多远?

简介: #紧接上文 WebGL+WebVR可以轻松打造出一款VR游戏,而且整个游戏代码竟然可以精简到100k以内,加上JS及时编译和调试的特性,打造一款简单的3D场景,要比U3D这种Native方式廉价、高效很多。 U3D作为传统的Native引擎,包体动辄几十M,使用C/C++、C#等编译语言,效率明显不如JS+Chrome,不过好处十分明显,运行性能良好。 #本次Demo二维码: 依旧80

紧接上文

WebGL+WebVR可以轻松打造出一款VR游戏,而且整个游戏代码竟然可以精简到100k以内,加上JS及时编译和调试的特性,打造一款简单的3D场景,要比U3D这种Native方式廉价、高效很多。
U3D作为传统的Native引擎,包体动辄几十M,使用C/C++、C#等编译语言,效率明显不如JS+Chrome,不过好处十分明显,运行性能良好。

本次Demo二维码:

依旧800k的APK,包含VR游戏与VR视频,进一步完善了WebVR的兼容性:
vr_1_0

使用WebGL+WebVR做VR视频

常见的VR视频有哪些

以下截图来自网络

固定视角的VR分屏视频

6d81800a19d8bc3e412085ac858ba61ea8d345a8_jpg
用户只能从摄影师提供的固定角度观看视频,视觉范围比较小,本质上是位于不同摄像头的两种视频的合并。常见的比如电影院的3D视频,通过3D/VR眼镜偏光使左右眼看到不同影响,给人以立体感。

单一视角的VR全景视频

121320xywfwf5r28edfc2y
摄影师通过全景相机拍摄的360°全景视频,视频通常是固定的长宽2:1的比例(完美比例应该是3.1415926...),用户用VRPlayer播放视频时,将视频的每一帧生成一个球形纹理,用户的视角在球心的位置,通过重力感应、陀螺仪等切换不同的视角。
这种情况下,如果强行切换成VR分屏模式观看,左右视角播放的视频内容本质上是一样的,颜色没有井深,呈现的3D立体感较弱

双眼视角的VR全景视频

摄影师通过双摄像头拍摄的360°全景视频,视频原始数据相当于2个1.1.2中的视频,但视频呈现模式不同场景区别很大,由于标准尚未统一的缘故,常见的有两种

谷歌Cardboard提供的Demo中1:1的比例内容

andes
本质上是两个2:1的图像合并成一个正方形的图像,原始图像未压缩也不失真,效果清晰但文件偏大。VRPlayer播放时,使用OpenGL生成两个球形纹理、两个摄像机,分别模拟人的左右眼。第一个球形纹理使用上半部分图像,第二个使用下半部分图像,两个全景效果。

Three.js上提供的Demo中2:1的比例内容

WechatIMG1_jpeg

本质上也是两个2:1的图像合并成的一个2:1的图像,为了降低文件的大小,先将两个视频源从2:1压缩到1:1,在左右拼接,合并成2:1的图像。
VRPlayer播放时,用两个1:1的图像生成两个球形纹理,理想比例是3.1415926..,看官也该知道了,视频被拉伸了,图像质量也降低了,但文件减小了一倍。

VR视频要求有多高?

手机屏幕的要求

手机屏幕经过VR眼镜之后,手机屏幕距离人眼的距离更近了,图像被放大了2倍以上,像素感明显。目前主流的视网膜屏幕,通常是眼镜看手持设备屏幕时,看不出像素感。VR行业的屏幕标准尚未统一,如果哪一天VR真的进入商业化,对屏幕的要求更高,目前iPhone等手机,作为VR屏幕,只能说是入门级

视频清晰度的要求

这里我们只说VR全景双屏视频,测试设备:我的魅蓝Note3
1080x540, 没法看,60FPS以上
2160x1080,有点模糊,Demo中的视频杨洋/热巴故事线,43FPS以上
4096x2048,可以看看,Demo中的视频,其余的是4k视频 14FPS以上

带宽的要求

4k视频,带宽建议50M以上吧

总结

全景双屏VR视频

这只是一个起步阶段,目前主流手机像素感明显,为了达到最佳性价比,最好找个这样的手机:
视网膜屏或者更清晰
能够支持重力、陀螺仪
能够支持4K硬解码的解码器
能够支持4K大小纹理的GPU

大概是这样子的
Android: 5.0以后的
iPhone: 5s以后的

固定视角双屏VR视频

这个比较简单,1080P已经很不错了
不需要支持重力、陀螺仪,只要屏幕清晰即可。

目录
相关文章
|
Web App开发 移动开发 JavaScript
【前端用法】HTML5 Video标签如何屏蔽右键视频另存为的js代码以及如何禁用浏览器控件,Video 禁止鼠标右键下载
【前端用法】HTML5 Video标签如何屏蔽右键视频另存为的js代码以及如何禁用浏览器控件,Video 禁止鼠标右键下载
324 0
|
3月前
|
Web App开发 数据采集 移动开发
提升Selenium在Chrome上的HTML5视频捕获效果的五个方法
在Selenium中优化Chrome的HTML5视频捕获涉及更新Chrome和ChromeDriver、配置浏览器选项、使用代理IP、调整加载策略及确保安装了正确编解码器。例如,更新驱动程序,添加如`--autoplay-policy`和`--proxy-server`的命令行参数,使用代理以防止被封,设置页面加载策略为'eager',并安装必要的编解码器来确保视频播放。代码示例展示了如何集成这些优化措施。
108 2
提升Selenium在Chrome上的HTML5视频捕获效果的五个方法
|
12天前
|
移动开发 HTML5
在HTML5中嵌入视频和音频
【10月更文挑战第5天】在HTML5中嵌入视频和音频。
25 3
|
27天前
|
移动开发 编解码 监控
HTML5 Video(视频)作为背景的优化方案
使用 HTML5 `<video>` 标签作为网页背景视频可以提升视觉效果,但需优化以确保性能和用户体验。主要方法包括:选择合适的视频格式(MP4、WebM、Ogg)和分辨率(720p 或更低),压缩文件大小,确保视频静音和循环播放,使用 CSS 设置全屏样式,根据设备和网络条件加载视频或静态图像,使用 `playsinline` 属性和延迟加载技术提高性能,确保无障碍性,并监控页面加载时间。合理应用背景视频可增强网站视觉效果而不影响用户体验。
|
27天前
|
移动开发 编解码 前端开发
HTML5 <video>视频详解
HTML5引入了内置的`&lt;video&gt;`标签,简化了网页中视频的嵌入与播放。本文详细介绍了HTML5视频的基本语法、常用属性(如controls、autoplay等)、示例代码及使用注意事项,包括浏览器兼容性、跨域请求处理和响应式设计。通过JavaScript还可实现对视频播放的动态控制。掌握这些技巧,有助于提升网站的多媒体体验。
|
2月前
矢泽妮可二次元html视频动态引导页源码
矢泽妮可二次元html视频动态引导页源码 源码由HTML+CSS+JS组成,记事本打开源码文件可以进行内容文字之类的修改,双击html文件可以本地运行效果,也可以上传到服务器里面,重定向这个界面
27 0
|
3月前
|
Web App开发 存储 JavaScript
HTML一个简单的视频提速写法构思
HTML一个简单的视频提速写法构思
|
3月前
|
Web App开发 移动开发 HTML5
文本,兼容性-----HTML5新增音频和视频标签
文本,兼容性-----HTML5新增音频和视频标签
|
4月前
|
移动开发 监控 前端开发
基于 HTML5 WebGL 和 VR 技术的 3D 机房数据中心可视化
基于 HTML5 WebGL 和 VR 技术的 3D 机房数据中心可视化