目前传统的视频和直播模式还是停留在2D平面,也有少部分应用在接入VR视频,但是VR视频和普通视频存在不少区别,两者的用户体验和企业盈利模式很难平滑的过度,比如目前的视频广告业务在VR视频内插入会变得很棘手。
所以我一直在找一种模式,可以用尽可能少的改变,实现传统视频也可以VR方式去体验,比如游戏直播观看用户可以带上VR眼镜第一视角去观看;普通视频嵌入到VR场景内实现大荧幕效果,周边可以自定义电影院背景或者户外背景;原有的普通广告可插入到场景内的前后左右上下等任何方位而不需要重新去制作广告内容等等。
下面将一一举例说明上面列举的几种方式如何实现
实现这一技术需要借助mxreality.js webVR播放器,地址:https://github.com/guoguicheng/mxreality.js
1、游戏直播模式,观看者带上VR头盔即可第一人称不限视角去身临其境观看
3D相机一个方向渲染图例
xyz正负半轴放置6个fov=90的相机可以将所有场景无缝拍完
要实现游戏VR直播,游戏渲染引擎需要同时渲染上下左右前后(高宽比为1:1)视角,拼接好2x3(2行3列)的帧后推流到直播服务器,如下是视频帧拼接顺序
-————-————-————--
| 右 | 左 | 上 |
—————-————-————--
| 下 | 前 | 后 |
—————-————-————--
推流成功后使用播放器设定播放流地址即可实现VR模式直播,例如如下是hls直播流,可以使用flv、dash、webrtc等协议,免费版本支持hls、flv、dash等协议。
vr.play('http://xxx.xx.xx/live.m3u8', vr.resType.sliceVideo, { shape: 'box' });
然后将手机放到VR盒子或头盔里面,选手在pc上玩或其他设备,观看者可以前后左右上下看到当前选手周围的情况。当然,选手端也可以使用超低延迟技术(比如webrtc流),带上头盔继续游戏,如pc设备上选手继续使用鼠标和键盘操作,使用VR眼镜代替屏幕进行游戏。
2、第二点、为什么普通视频要切换VR方式观看?
普通视频如果在移动设备观看,用户需要一直手持,pc或大屏则很单调,没发体验电影院或者自定义电影背景。想象一下,如果我看个普通的电影,带上VR眼镜解放双手,电影背景是很舒服的户外或者是大气的电影院,那体验是不是比对着一个屏幕看舒服太多?
那么需要如何实现呢,其实如果明白了刚才讲的视频帧拼接顺序就很容易联想到怎么做,因为视频帧是有上下左右前后6个正方形拼接在一起组成2x3的帧,那我只需先在六个面,这个背景可以使用一般的相机配合云台拍6个面,按照对应的顺序贴好背景。然后再对应的区域把视频合成进去,比如VR默认的前方在第二排第二个区域,只需要吧视频合唱到该区域,用户就可以不转动头而看到视频。
-————-————-————--
| 右 | 左 | 上 |
—————-————-————--
| 下 | 前 | 后 |
—————-————-————--
3、第三点,如何插入广告
如果商接入了游戏直播、或者是使用VR模式播放普通视频,那只需再服务端控制,在场景的上下左右前后6个面随意插入广告,不同的方位可以放不同的广告内容和不同的广告位金额等,当然也可以插入到场景左前方类似的位置,只需在合成的时候按照帧拼接位置计算出需要合成的坐标,分多次贴入即可。