我有一个内置的流媒体网络服务器来加载视频。我还设置了一个简单的 html 页面,其中包含请求视频内容的视频标签。
初始请求的标头如下:
Range:bytes=0-
在我的服务器上,我将范围的末尾设置为:
Range:bytes=0-100000
这有效,html播放器请求内容的下一部分,标题为:
Range:bytes=100001-
然后返回其余内容。
如何获取 html 视频标签以请求正确的范围。
您不会使浏览器请求"正确"的范围。浏览器请求所需的范围。 服务器必须正确响应它发出的范围请求。
若要提供video
元素所需的信息,需要将帧的元数据放在文件的开头。它包含在MOOV原子中,并且可以在MP4视频的开头重新定位(因此在最初打开文件时读取(使用ffmpeg之类的东西。这将允许video
元素正确请求起点和终点,而不仅仅是开始并希望结束......
./ffmpeg -y -i SourceFile.mp4 -c:a copy -c:v copy -movflags faststart DestFile.mp4
这将简单地重新定位MOOV原子,而无需任何其他转码(-c:a copy
和-c:v copy
只需复制音频和视频而无需更改(