我们生成段大小为 3 秒的 hls 文件。我们将 hlsjs 用于非 Safari 浏览器,而 Safari 具有本机 hls 支持。
在 hlsjs 世界中,我们能够使用 maxMaxBufferLength 限制我们应该在缓冲区方面领先多少,因为我们无法为 Safari 找到类似的解决方案。在 Safari 中,加载视频 m3u8 后,即使我在一秒钟后暂停,在网络选项卡中,我也可以看到正在获取所有我想限制的段。
由于公司政策,我将无法分享我们的示例。但是,下面附上了 hls.js 的公共示例文件:
https://test-streams.mux.dev/x36xhzz/url_6/193039199_mp4_h264_aac_hq_7.m3u8尝试在 Safari 中打开这个 url,并尝试暂停视频,你会看到它继续下载。就像您使用https://hls-js.netlify.app/demo/和 maxMaxBufferLength: 5打开同一个一样,它不会发生。
ffmpeg 是否有一个选项可以让它控制缓冲区或我们应该通过侦听事件为 Safari 做一些解决方案?
在这里找到了同样的问题 -> https://developer.apple.com/forums/thread/121074