- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个比特率可变的 MP4 视频,因此平均比特率不一定在整个文件中保持一致。因为我的视频是计算机屏幕的捕获,所以视频的某些部分比特率非常低,因为什么都没有发生,而其他部分比特率高得多,因为屏幕上有很多事件。
Chrome 如何决定为渐进式下载 HTTP(S) 视频缓冲多少视频?我遇到了一个问题,即 Chrome 往往缓冲太少,因此播放时断断续续。
如果无法说服 Chrome 下载某个时间的视频(而且我不想只预加载整个视频),我可以编写 MP4 一些特殊的方法来解决问题?我正在使用 FFmpeg 和 MP4Box。也许这取决于 HTTP 服务器?
最佳答案
如果您想更好地控制视频的播放,您绝对应该查看 MediaSourceExtensions
。他们定义了一个完整的视频播放模型,定义了sourceBuffers
,你可以在其中放置视频数据等。
请注意,它仍然不是一个简单易用的 API,关于如何使用它的信息非常零散。
在你的情况下,如果你走MSE
路线,你可以继续使用h264
(这可能是你的mp4
是的编解码器包装)或切换到 webm
。
在走 MP4, h264
路线的情况下,您需要生成一个分段的 MP4 (fMP4
) 并编写一些 JavaScript
控制您使用 MP4 片段(MSE 术语中的 segments
)的方式。
MP4Box 支持 -dash
协议(protocol),它将以适合通过 MSE
消费的方式对 MP4 进行分段。 FFmpeg 还支持生成碎片化的 MP4。
关于html - Chrome 如何决定为 HTML5 MP4 缓冲多少视频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28883323/
我是一名优秀的程序员,十分优秀!