VR 视频播放器研究

最近关注VR视频播放器:

无意间看到了jwplayer 提供的demo。

https://developer.jwplayer.com/jw-player/demos/innovation/360-video/

流畅度,效果不错,于是想研究一下他的player如何实现的,于是分析页面源码,看到player的javascrip脚本。

<script type="text/javascript">

var player = jwplayer('vr-player').setup({
	primary: 'html5',
	hlshtml: true,
	width: '100%',
	playlist: [{
		title: 'Caminandes VR',
		mediaid: 'D5X2Trf5',
		image: '//content.jwplatform.com/thumbs/D5X2Trf5-720.jpg',
		link: '//content.jwplatform.com/previews/D5X2Trf5',
		sources: [{
			file: '//content.jwplatform.com/manifests/D5X2Trf5.m3u8',
			type: 'hls'
		}, {
			duration: 41,
			file: '//content.jwplatform.com/videos/D5X2Trf5-O8SBuWVa.mp4',
			height: 1080,
			label: '3840x1080 px',
			type: 'video/mp4',
			width: 3840
		}, {
			duration: 41,
			file: '//content.jwplatform.com/videos/D5X2Trf5-Na6BIilo.mp4',
			height: 720,
			label: '2560x720 px',
			type: 'video/mp4',
			width: 2560,
      "default": true
		}, {
			duration: 41,
			file: '//content.jwplatform.com/videos/D5X2Trf5-gl5LxSde.mp4',
			height: 360,
			label: '640x180 px',
			type: 'video/mp4',
			width: 1280
		}],
		tracks: [{
			file: '//content.jwplatform.com/strips/D5X2Trf5-120.vtt',
			kind: 'thumbnails'
		}]
	}],
	plugins: {
		'https://ssl.p.jwpcdn.com/player/plugins/vr/vr.js': {}
	}
});

player.on('error', function(error) {
	var errorDiv = document.querySelector("#error");
	if (error.message == jwplayer.vr.events.UNSUPPORTED_BROWSER ||
		error.message == jwplayer.vr.events.INITIALIZATION_ERROR) {
		errorDiv.classList.add('active');
		if (error.message == jwplayer.vr.events.UNSUPPORTED_BROWSER) {
			if (jwplayer.utils.isSafari()) {
				errorDiv.innerHTML = 'Safari is currently unsupported, please visit this ' +
					'page using <a href="https://www.google.com/chrome/">Google Chrome</a> ' +
					'or <a href="https://www.mozilla.org/en-US/firefox/new/">Mozilla Firefox</a>.';
			} else {
				errorDiv.innerHTML = error.message +
					' Please upgrade to a browser with <a href="https://get.webgl.org/">WebGL support</a>.';
			}
		} else {
			errorDiv.innerHTML = error.message;
		}
	}
	console.error('Error: ' + error.message);
});

</script>
<script type="text/javascript">
if (jwplayer().id) {
	jwplayer().on('ready', function() {
		document.getElementById('demo-player-version').innerHTML = jwplayer.version.split('+')[0];
	});
}
</script>

分析上面的脚本,大概有几点,当然其中也有些不太明白,等待后续研究:

     1)基于HLS协议实现视频传输,但是不同分辨率似乎又基于mp4,而不是基于码率不同的hls流,不太明白。

     2)浏览器需要webGL支持,这个是javascript的一个3D交互API,如果要在浏览器支持vr,那么基于javascrip的webGL似乎必须要支持的。

于是继续研究:

     在github上发现jwplayer的开源代码:

             https://github.com/jwplayer/jwplayer

WebGL:

      WebGL 1.0 is based on OpenGL ES 2.0 and provides an API for 3D graphics。

     



AndroidVR视频播放器是一种在Android VR设备上运行的虚拟现实视频播放应用程序。该应用程序可以让用户在虚拟现实环境中观看全景视频、3D视频和VR视频。它为用户提供了一种沉浸式的观影体验,使用户感觉自己置身于视频所呈现的场景中。 AndroidVR视频播放器具有以下特点: 1. VR模式:用户可以将手机放入VR头盔中,并戴上头盔,进入虚拟现实环境,与视频内容进行互动。用户可以通过头部运动来改变视角,使其与视频中的场景保持同步。这种交互方式增加了用户的沉浸感,使其感受到视频所展示的场景更加真实。 2. 多种格式支持:AndroidVR视频播放器支持多种视频格式的播放,包括全景视频、三维立体视频和VR视频。无论是从各种来源下载的视频文件还是从在线视频平台的链接,它都能够快速加载和播放。 3. 视频控制:用户可以通过VR头盔上的控制器或手机屏幕上的触摸操作来控制视频的播放,包括暂停、播放、调整音量和跳转到特定时间点等功能。 4. 多种观影模式:AndroidVR视频播放器提供多种观影模式,例如普通模式、全景模式和3D模式等。用户可以根据自己的喜好和需要选择不同的模式进行观影。 5. 离线播放:AndroidVR视频播放器支持视频的离线下载和播放,用户可以在有网络的情况下将视频下载到手机存储中,然后在没有网络的情况下进行观看。 总之,AndroidVR视频播放器为用户提供了一种全新的观影体验,让用户可以在虚拟现实环境中尽情享受视频的内容,并创造出一种身临其境的感觉。随着虚拟现实技术的不断发展,AndroidVR视频播放器将会越来越受到用户的欢迎,并成为用户观看VR视频的首选应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

coloriy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值