Chrome如何确定为HTML5 MP4缓存多少视频?

时间:2015-03-05 16:53:04

标签: html5 google-chrome video ffmpeg

我有一个可变比特率的MP4视频,因此平均比特率不一定在整个文件中保持一致。因为我的视频是对电脑屏幕的捕获,所以视频的某些部分的比特率非常低,因为没有任何事情发生,而其他部分的比特率要高得多,因为屏幕上有很多活动。

Chrome如何决定为渐进式下载HTTP(S)视频缓冲多少视频?我遇到了Chrome往往缓冲太少的问题,因此播放结果很糟糕。

如果无法说服Chrome下载视频的某个时间(并且我不想只是预加载整个视频),我是否可以通过一些特殊方式为MP4编写解决方案问题?我正在使用FFmpeg和MP4Box。也许这取决于HTTP服务器?

1 个答案:

答案 0 :(得分:3)

如果您想要更好地控制视频的播放,您一定要查看MediaSourceExtensions。他们为视频播放定义了一个完整的模型,定义了sourceBuffers您可以放置​​视频数据等等。

请注意,使用API​​并不简单,有关如何使用它的信息非常分散。

在您的情况下,如果您使用MSE路线,则可以继续使用h264(可能是您mp4正在包装的编解码器)或切换到{{1} }。

如果是webm路线,您需要生成一个支离破碎的MP4(MP4, h264)并写一些fMP4来控制您使用MP4的方式片段(MSE用语中的JavaScript)。

MP4Box支持segments协议,该协议将以适合通过-dash消费的方式对MP4进行分段。 FFmpeg也支持生成支离破碎的MP4。