我目前正在尝试构建一个限制访问视频的html5视频页面。因此,我想将视频从网络根目录中删除,并使用某种脚本检查用户帐户并发送视频。
如果我将.ogv(theora)和.mp4(h264)文件放入webroot并使用带有多个源标签的视频标签,它们适用于所有经过测试的浏览器:Firefox(ogg),Chrome(ogg), IE9(mp4),Safari(mp4),Opera(ogg)
<video id="currentVideo" controls width=640>
<source type='video/ogg; codecs="theora, vorbis"' src="http://mysite/1.ogv" />
<source type='video/mp4; codecs="avc1.64001E, mp4a.40.2"' src="http://mysite/2.mp4" />
</video>
现在出现的第一个问题是:为什么chrome使用ogg格式?它通过mp4视频在时间轴上擦除得更快,并且支持mp4视频......有没有办法将格式标记为“首选格式”?
现在,如果我将文件从我的webroot中删除并使用这样的php脚本来提供它们:
的download.php:
$path=explode('/',$_SERVER['PATH_INFO']); if (sizeof($path)>1) { $inf=explode('.',$path[1]); $id=intval($inf[0]); $type=$inf[1]; $ctype=''; if ($type=='ogv') { $ctype='video/ogg'; } elseif ($type=='mp4') { $ctype='video/mp4'; } $fname=sprintf('/var/outsidewebroot/videos/test.%s',$type); http_send_content_type($ctype); http_throttle(0.1); http_send_file($fname); }
应该提供包含对http范围查询的支持的文件。
HTML:
<video id="currentVideo" controls width=640>
<source type='video/ogg; codecs="theora, vorbis"' src="http://mysite/download.php/1.ogv" />
<source type='video/mp4; codecs="avc1.64001E, mp4a.40.2"' src="http://mysite/download.php/2.mp4" />
</video>
Opera无法再确定视频的播放时长,更糟糕的是:谷歌浏览器(及其免费克隆版)挂起(mac和windows) - chrome本身仍在运行,但加载网站的标签已锁定< / p>
答案 0 :(得分:2)
有没有办法将格式标记为“首选格式”?
按优先顺序列出它们。你有ogg首先,所以它被视为首选。
<video id="currentVideo" controls width=640>
<source type='video/mp4; codecs="avc1.64001E, mp4a.40.2"' src="http://mysite/2.mp4" />
<source type='video/ogg; codecs="theora, vorbis"' src="http://mysite/1.ogv" />
</video>