如何将最初未知大小的视频流式传输到HTML5视频广告代码?

时间:2017-12-20 19:44:00

标签: html5 video video-streaming chunked-encoding http-content-range

我正在尝试编写一个Web服务(使用C#和WebAPI,认为实际的服务器技术可能并不重要),它托管动态视频文件供基本HTML5视频元素使用。

以下是我的情况和要求:

  • 视频正在动态转码,因此最终文件大小未知。我无法提供Content-Length。但是,视频的持续时间是事先知道的。
  • 当页面加载时,即使没有进行转码,也必须立即播放视频。
  • 用户必须能够通过HTML5视频控件在视频中向前和向后搜索。如果他们试图向前搜索未转码的点,则请求将被阻止,直到代码转换为止。

我尝试使用带有206: Partial Content标题的Content-Range回复,但由于我无法提供content-length,因此Chrome中的播放器似乎无法超越第一块视频它得到了,Firefox中的播放器甚至没有尝试下载超过第一个块。在客户端要求的范围之外响应范围也是无效的,但视频播放器总是要求字节0 +。

没有内容长度,我考虑使用Transfer-Encoding: chunked并对输出进行分块。但是,如果服务器不支持远程请求,则Chrome不允许您通过视频进行搜索。

我还考虑过指定1TB的假内容长度或者荒谬的东西,这样我就可以做远程响应选项,但我不知道这是否会影响进度条或搜索功能。 HTML5视频播放器是否根据文件大小或持续时间确定进度条的尺寸?

那么我的选择是什么?我确信这是一个以前解决过的问题。范围响应可以与分块编码结合使用吗?

0 个答案:

没有答案