我有一个asp.net mvc 5网站,在主页上我需要以mp4格式显示视频。一切都很好,除了寻求功能。我花了几个小时寻找解决方案,但我没有运气。
html元素:
<video id="appVideo" controls style="width: 100%; height: 100%">
<source src="@Url.Action("HomePageVideo", "Home")" type="video/mp4" />
</video>
检索视频的控制器方法:
[HttpGet]
[AllowAnonymous]
public ActionResult HomePageVideo()
{
return File(@"somePath\file.mp4", "video/mp4");
}
我错过了什么?提前谢谢!
答案 0 :(得分:2)
问题很可能出在服务器端,而不是客户端。
根据您托管视频的方式,搜索功能的工作方式略有不同。
例如,如果您正在使用“正确”的流媒体服务器和自适应比特率流媒体协议(如HLS,平滑流媒体,MPEG DASH等),那么您的客户端将能够轻松地请求视频的特定“块”并跳转到它(即寻求功能)。
如果你使用HTTP'伪'流媒体(可能更有可能),那么你的客户端仍然只能请求视频的某个部分,但为了支持这一点,你的服务器必须支持'Accept-Ranges'响应标题。
这种机制本质上允许客户端请求文件的一部分形成服务器 - 它允许浏览器通过在播放之前下载小块视频来节省带宽,而不是总是下载整个视频,它也是允许它通过请求与用户正在寻找的地点相对应的块来轻松搜索。
并非所有服务器都支持此功能,或者已将其配置为开箱即用,因此这可能是您的问题所在。
请注意,您的mp4视频也必须设置为在开始时拥有元数据,以便在下载之前支持播放(请参阅:http://multimedia.cx/eggs/improving-qt-faststart/),但从您的说明中听起来您已经知道了这一点。