Chrome如何决定为HTML5 MP4缓冲多少视频?

3
我有一个MP4视频,它的比特率是可变的,因此平均比特率在整个文件中并不始终保持一致。由于我的视频是计算机屏幕的截图,因此视频的某些部分非常低,因为没有发生任何事情,而其他部分的比特率则要高得多,因为屏幕上有很多活动。
Chrome如何决定为渐进式下载HTTP(S)视频缓冲多少视频?我遇到了一个问题,即Chrome倾向于缓冲过少,导致播放出现卡顿。
如果没有办法说服Chrome下载一定的视频时间(我不想预加载整个视频),我能否以某种特殊方式编写MP4来解决这个问题?我正在使用FFmpeg和MP4Box。也许取决于HTTP服务器?
1个回答

3
如果您想更好地控制视频播放,您应该一定要查看MediaSourceExtensions。它们定义了一个完整的视频播放模型,定义了sourceBuffers,您可以在其中放置视频数据等等。
请注意,它不是一个简单易用的API,如何使用它的信息非常零散。
在您的情况下,如果您选择MSE路线,则可以继续使用h264(这可能是您的mp4所包装的编解码器),或者切换到webm
如果选择MP4,h264路线,则需要生成分段MP4(fMP4)并编写一些JavaScript来控制您如何处理MP4片段(MSE术语中的segments)。
MP4Box支持-dash协议,可将MP4分段以适合通过MSE消费的方式。FFmpeg也支持生成分段MP4。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接