Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

能不能搞个bilibili 缓冲增强,按下按钮直接缓冲整个视频,,适合网络环境较差 #661

Open
1265578519 opened this issue Feb 9, 2020 · 18 comments

Comments

@1265578519
Copy link

能不能搞个bilibili 缓冲增强,按下按钮直接缓冲整个视频,,适合网络环境较差

@qmzmdqs
Copy link

qmzmdqs commented Mar 2, 2020

+1,不知道能不能实现

@zetaloop
Copy link

一键下载+修改原视频页面中播放器的视频源为下载的视频
视频弹幕两不误

@jjj201200
Copy link
Member

jjj201200 commented Mar 24, 2020

@IdeaPloter 想法很美好~ 怎么操作呢~

@qmzmdqs
Copy link

qmzmdqs commented May 6, 2020

感觉除了存在内存,没别的方法了

@qmzmdqs
Copy link

qmzmdqs commented May 21, 2020

作者在实现了吗,我今天尝试调试了一下。

调试找到 dash player 的 setStableBufferTime 函数,可以设置缓存的秒数,的确管用。
但。。。当时我的网络卡了一会,然后页面整个播放器重新初始化了。。。已经缓存的没用了。。。

@jjj201200
Copy link
Member

jjj201200 commented May 22, 2020

@qmzmdqs 很不错哦,确实立竿见影
我最近在开发2.x版本,开源项目暂时不维护了哦,你们可以自己pull,我检查后会合并

简单测了一下,似乎还有一些问题,超过某个大小会重新缓存

@qmzmdqs
Copy link

qmzmdqs commented May 22, 2020

@jjj201200 是的,还不少问题,我也只是简单看了一下,这个功能能用要额外做很多功夫才行。

@jjj201200
Copy link
Member

@qmzmdqs 稍微翻了一下他们源码,默认是20秒,扩大到3-5分钟似乎是没问题的

@qmzmdqs
Copy link

qmzmdqs commented Jun 5, 2020

@jjj201200 这里有一个很坑的问题
b 站播放器这里有一个逻辑,假如现在要缓冲 n 秒,在这 n 秒片段缓冲完成前,一旦网络波动造成较长时间(好像是十几秒?没测)不能请求,播放器就会重置,不仅缓存好的掉了,还会对观看造成很大的干扰。

明明至少还能播一会,但它不等播放完缓存,非要傻傻地立马重置播放器。

我有一台只支持 2.4g wifi 的笔记本,连 wifi 不太稳定,网速卡时经常发生这样的事。。。

@qmzmdqs
Copy link

qmzmdqs commented Jun 5, 2020

蜜汁逻辑,每次遇到都默默吐槽 b 站的前端开发。乖乖播放完缓冲片段,说不定我网络就恢复了。。

我的看法

直接调整播放器默认缓存时间的,只适合于网络较稳定,但网速慢的情况。

@jjj201200
Copy link
Member

@qmzmdqs 艾特b站前端来看看哈哈哈哈哈

@qmzmdqs
Copy link

qmzmdqs commented Jun 5, 2020

@jjj201200 可以有🤣

@zz5678
Copy link

zz5678 commented Aug 5, 2020

看 b 站卡的问题,我也遇到了,我的解决方法是,用 annie 或者 ykdl 解析播放流地址,用 mpv 来播放流,而不要用 浏览器播放,浏览器的 cdn 和 cache 都不好改。

脚本很简单自己做。
测试固定的找几个合适的cdn IP,自己改 hosts。
mpv 可以设置比如 800兆 的缓冲下载视频,如果遇到了新的 dash api 的话,甚至可以达到200兆以上的缓存速度,完全不卡。

# cache 
cache=auto
demuxer-max-bytes=800MiB
demuxer-readahead-secs=900
demuxer-max-back-bytes=500MiB

@smellyking233
Copy link

@jjj201200 这里有一个很坑的问题
b 站播放器这里有一个逻辑,假如现在要缓冲 n 秒,在这 n 秒片段缓冲完成前,一旦网络波动造成较长时间(好像是十几秒?没测)不能请求,播放器就会重置,不仅缓存好的掉了,还会对观看造成很大的干扰。

明明至少还能播一会,但它不等播放完缓存,非要傻傻地立马重置播放器。

我有一台只支持 2.4g wifi 的笔记本,连 wifi 不太稳定,网速卡时经常发生这样的事。。。

之前使用b站看地区限制的视频是只要破解了限制后就能断了软件直到看完那一集,但之后就是要求全程开着软件(看起来是每隔多少秒就会检查一次网络,异常就会直接断开),不知道是不是和这个有关——完全不懂编程开发的纯小白

@jjj201200
Copy link
Member

@smellyking233 因为视频源被分段下载和播放了哈,你描述的情况是理所应当会出现的

@qmzmdqs
Copy link

qmzmdqs commented Sep 6, 2021

@jjj201200 关于这个功能,我很早有一个脑洞,就是比较麻烦。
像以前百度云盘的极速上传插件一样,需要这个功能就安装一个插件原生程序,通过这个本地程序写入和读取缓存。
通过拦截网络请求或者播放器方法来记录缓存和注入缓存。就是这步比较麻烦,也不知道能不能做到。
总之,这样搞了后,网页就和移动端那样有了缓存。就是这样做不知道投入值不值得……

@jjj201200 jjj201200 unpinned this issue Nov 6, 2021
@whsong
Copy link

whsong commented Apr 1, 2022

@qmzmdqs 叨扰了。请问您提到的 setStableBufferTime 设置缓存的秒数 具体怎么操作方便展开说一下嘛?不是网页相关开发人员。

@qmzmdqs
Copy link

qmzmdqs commented Apr 2, 2022 via email

@jjj201200 jjj201200 pinned this issue Aug 4, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants