我有一个可变比特率的MP4视频,因此平均比特率不一定在整个文件中保持一致。因为我的视频是对电脑屏幕的捕获,所以视频的某些部分的比特率非常低,因为没有任何事情发生,而其他部分的比特率要高得多,因为屏幕上有很多活动。
Chrome如何决定为渐进式下载HTTP(S)视频缓冲多少视频?我遇到了Chrome往往缓冲太少的问题,因此播放结果很糟糕。
如果无法说服Chrome下载视频的某个时间(并且我不想只是预加载整个视频),我是否可以通过一些特殊方式为MP4编写解决方案问题?我正在使用FFmpeg和MP4Box。也许这取决于HTTP服务器?
答案 0 :(得分:3)
如果您想要更好地控制视频的播放,您一定要查看MediaSourceExtensions
。他们为视频播放定义了一个完整的模型,定义了sourceBuffers
您可以放置视频数据等等。
请注意,使用API并不简单,有关如何使用它的信息非常分散。
在您的情况下,如果您使用MSE
路线,则可以继续使用h264
(可能是您mp4
正在包装的编解码器)或切换到{{1} }。
如果是webm
路线,您需要生成一个支离破碎的MP4(MP4, h264
)并写一些fMP4
来控制您使用MP4的方式片段(MSE用语中的JavaScript
)。
MP4Box支持segments
协议,该协议将以适合通过-dash
消费的方式对MP4进行分段。 FFmpeg也支持生成支离破碎的MP4。