我正在尝试编写一个Web服务(使用C#和WebAPI,认为实际的服务器技术可能并不重要),它托管动态视频文件供基本HTML5视频元素使用。
以下是我的情况和要求:
Content-Length
。但是,视频的持续时间是事先知道的。我尝试使用带有206: Partial Content
标题的Content-Range
回复,但由于我无法提供content-length
,因此Chrome中的播放器似乎无法超越第一块视频它得到了,Firefox中的播放器甚至没有尝试下载超过第一个块。在客户端要求的范围之外响应范围也是无效的,但视频播放器总是要求字节0 +。
没有内容长度,我考虑使用Transfer-Encoding: chunked
并对输出进行分块。但是,如果服务器不支持远程请求,则Chrome不允许您通过视频进行搜索。
我还考虑过指定1TB的假内容长度或者荒谬的东西,这样我就可以做远程响应选项,但我不知道这是否会影响进度条或搜索功能。 HTML5视频播放器是否根据文件大小或持续时间确定进度条的尺寸?
那么我的选择是什么?我确信这是一个以前解决过的问题。范围响应可以与分块编码结合使用吗?