使用 streamlink 播放直播
2020-02-29
通过 streamlink 调用本地播放器(如 VLC),可以很大程度降低系统资源占用(毕竟 C 系语言还是要比 js 快的哈)
使用 streamlink <URL>
可以查看可用的源。
使用 streamlink <URL> [STREAM]
可以播放直播。
eg: 播放 b 站转播 sakura miko 的直播时可以使用 streamlink https://live.bilibili.com/21144047 source
,比较卡顿时可以使用 streamlink https://live.bilibili.com/21144047 source_alt
换源
解决 bilibili 直播没有弹幕的问题
可以使用 BiliChat 。
具体方法就是新开一个窗口,打开如下网址 https://bilichat.3shain.com/gkd/<直播间号>
。
这个网页存在一个 bug,当网页处于后台的时候,弹幕不会刷新。
使用这个网页会在首页暴露你的使用,为了隐藏,可以在本地部署网页 npm -g i bilichat && bilichat
或者 npx bilichat
。
Bugs
bilibili 播放时出现图像不动的问题
(2020/2/29)弱网条件下(网页端观看的时候就有时存在卡顿)在 MacOS (10.15.3) 上运行 streamlink (1.3.1) + VLC (3.0.8 Vetinari (Intel 64bit)) 播放 bilibili 直播(直播间 21144047)时,在播放一段时间后会出现音频正常而界面停顿的问题,使用日志查看器显示会显示如下场景:
...
main warning: picture is too late to be displayed (missing 18 ms)
main warning: picture is too late to be displayed (missing 18 ms)
main warning: picture is too late to be displayed (missing 18 ms)
main warning: picture is too late to be displayed (missing 17 ms)
main warning: picture is too late to be displayed (missing 18 ms)
main warning: picture is too late to be displayed (missing 21 ms)
main warning: picture is too late to be displayed (missing 19 ms)
main warning: picture is too late to be displayed (missing 22 ms)
main warning: picture is too late to be displayed (missing 19 ms)
main warning: picture is too late to be displayed (missing 21 ms)
main warning: picture is too late to be displayed (missing 20 ms)
main warning: picture is too late to be displayed (missing 31 ms)
main warning: picture is too late to be displayed (missing 21 ms)
...
其中 (missing 18 ms)
中的延时会不断增加(没有上限)。
在关闭 丢弃延迟的帧
播放一段时间后,音频无法追上视频的进度(视频快了)。
在关闭 硬件加速
播放一段时间后,一切正常。
不支持斗鱼直播
rt https://github.com/streamlink/streamlink/issues/2328
欢迎有缘人将斗鱼的 js 加密转写成 python