Closed choi2k closed 2 years ago
@choi2k 完美,我知道如何测试追帧逻辑了。tks。
@choi2k 确认下,你用的哪个版本的jessibuca
@choi2k 确认下,你用的哪个版本的jessibuca
应该是最新那个 6-12 的版本. 之前手机上播放不到更新了. 我明早回去确认看看
https://github.com/langhuihui/jessibuca/releases/tag/v3.1.3 3.1.3 里面的 dist, 测试用的是 http-flv 流
对了你们服务器端用的是m7s 嘛? 是什么版本的?
不是..这边好像用了最原始的 nginx-http-flv-module
那可能是 服务器端的问题。你可以试下m7s 会追帧的。
那可能是 服务器端的问题。你可以试下m7s 会追帧的。
那我看看能不能用 m7s 试试... 用 bilibili 那款会追但有 mse 问题才试着找 wasm 的 player.
用 m7s 测试了下还是不能追帧.
题外话.. m7s 快速体验的后台预设是 8081, 官网写的是 8080
我自己测试了有追帧的啊,你能给我个地址,我测试看下嘛。
单位的视频不能放到外网.. 我拿了 m7s 里面那个测试 [HDL.AutoPullList] "live/hdl" = "http://flv.bdplay.nodemedia.cn/live/bbb.flv"
延迟会少点,大概因为视频流量不同? 前端的代码我弄了个最简单的. 本来想放在 codesandbox, 不知道为什么载入 jessibuca.js 就跑不了
测试方式.. 怕之前说的不清楚
进入网页前先把 chrome 的网络设定为 slow 3g
进入及播放视频后,确认有延迟现象,再等一会 (e.g. 10s),把网络速度调回没限制
我来测试看下。
@choi2k 这种情况,是网速跟不上服务器端推流,数据都在还路上,本地接收到的数据是慢的,所以延迟会原来越大。 如果是用户类似那种网速非常慢,触发了本地的延迟最大时间,就会触发丢帧,但是也是解决不了网速慢导致的问题。
这样讲你还能理解。
@choi2k 你试着慢网络几秒钟,然后连接上看下,就可以看到丢帧情况。
@choi2k 这种情况,是网速跟不上服务器端推流,数据都在还路上,本地接收到的数据是慢的,所以延迟会原来越大。 如果是用户类似那种网速非常慢,触发了本地的延迟最大时间,就会触发丢帧,但是也是解决不了网速慢导致的问题。
这样讲你还能理解。
但这样的话 如果网速恢复的话还是不会追帧么?或者有没有办法检测到这个延迟多大..然后选择手动重播来追帧?
可以的,可以定时的去服务器端拉取目前推流的最新时间,和本地的播放时间做对比,如果差值超过了某个大小,就直接重新拉取最新数据,进行查看。
本地的播放时间
想问这个时间可以从哪边获取?翻了文档和几个 event 都找不到..
stats 里面的ts http://jessibuca.monibuca.com/api.html#stats
stats 里面的ts http://jessibuca.monibuca.com/api.html#stats
好像有点误会.. 我以为 “播放时间” 是指像 2022-06-22 15:33:00 这种, 这个 stat ts 看起来是像客户端观看了多久(i.e. 进入观看视频到现在的时间)?
如果想用来服务器那边比较的话 拿客户端播放时间好像没作用..
我以为的比较是... 客户端视频的时间是 2022-06-22 15:33:00
然后检查服务器那边是 2022-06-22 15:34:00
, 中间相差一分钟,所以重新拉取. 不知道有没有可能拿到这个时间?
哦,stats里面的ts 就是解码获取到的流里面的时间,不过你讲的这种方式也可以实现,就是在播放的时候,需要给播放器一个开始时间,然后结合播放器里面的播放的时间,这样其实就是模拟出来 2022-06-22 15:33:00 这个时间了。
可以的,可以定时的去服务器端拉取目前推流的最新时间,和本地的播放时间做对比,如果差值超过了某个大小,就直接重新拉取最新数据,进行查看。
是指重新初始化播放器,播放吗
不需要,直接pause().then(()=>{play() }) 这种就行了。
不需要,直接pause().then(()=>{play() }) 这种就行了。
在延迟变大的时候,重新调用play()会出现短暂的加载动画,可以配置不显示这个加载动画吗
没有这个参数呢,可以自己定制化加一个。
测试使用 chrome 的限速, “slow 3g" 下时间差会越来越大. 后续恢复不限速的时候时间差也不会恢复.
看 stats buffer 在网速差的时候会上升,待网速恢复正常时恢复到设定水平, 但延迟没有改善