Closed swj1442291549 closed 8 years ago
html5 同样播放卡
其实是这个issue:https://code.google.com/p/chromium/issues/detail?id=532569 因为security原因从Chrome 45开始禁止了html5视频多次请求时被redirect到不同的服务器。 跳跃的时候新的请求可能会被CDN重定向到不同的节点。
要fix的话,估计得ajax请求一下同时用插件劫住网络看下第一次redirect到哪里,然后
如果你能忍受安全风险(不知道风险是啥,因为对应的security issue还没公开)和超长编译chrome的时间,可以自己修改chrome并编译。media/blink/buffered_data_source.cc
的 bool BufferedDataSource::CheckPartialResponseURL
函数改成 return true;
@fqj1994 https://github.com/zacyu/bilibili-helper/blob/master/background.js#L156-L176 我之前已经解决这个问题了, 所以以为目前导致播放卡住的应该只是网络链路原因.
抱歉没看你的commit log。不过还没 release 吧?因为刚才我自己的chrome nightly build又(真的是)因为这个原因卡住了。
@fqj1994 是的, 我今天会 release v0.7.5 包括这个修改. 顺便 XMLHttpRequest 是不能截住 redirect 的, 原因是根据 W3C 的标准, 这个过程时不能被拦截的, 即使通过扩展.
所以你发了个HEAD请求去看redirect到哪里了。
话说 @zacyu 是自己调出来 read error 是跟 redirect 有关还是去 crbug.com 找 issue 了?
by the way(和这个插件无关),最新的canary build,可以在视频的服务端设置Access-Control-Allow-Origin的header,并在video tag上加crossorigin这个attribute。然而插件并不能改Access-Control-Allow-Origin。。这个是个给CDN维护者的解决办法。
不过看reporter的发issue时间很可能指的就是这个问题毕竟大家用的都是release的版本。
@fqj1994 当时是突然发现乐视源的 HTML5 就都不能播放了, 于是到处去翻, 总之在 crbug 那边最后找到的. 不过扩展是是可以改 Access-Control-Allow-Origin 的吧? 还是最新的 canary build 禁止了?
同乐视+1。。。不过我直接去file了一个bug。然后看着流量调了一下觉得和redirect有关然后他们confirm了确实是故意disable掉的。
插件不能改Access-Control-Allow-Origin,但可以改其他的header,很早以前就是了,除非启动chrome的时候带着--disable-web-security这种危险的flag。
http://crbug.com/530928 当初file的bug。然后被另外我刚才前面写的那个issue替代掉了 (逃。。
@fqj1994 关于 Access-Control-Allow-Origin 这边有一个实例 https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=en 以及十分感谢你这边提供的相关情报.
然而那个实例右边description的描述里面要求你启动chrome的时候带上那些选项。
@fqj1994 我对描述中 Hint
Hint Same behavior you can get just using chrome flags [http://www.chromium.org/developers/how-tos/run-chromium-with-flags]
chrome --disable-web-security
or
--allow-file-access-from-files --allow-file-access --allow-cross-origin-auth-prompt
的理解是, 使用这个扩展你可以的到和使用 flag 同样的效果.
好吧。我看错了。我的锅。 不过现在插件取到重定向之后地址的做法会不会遇到CDN地址expire的问题? 不过加header和attribute的玩法现在chrome的插件能match到特定标签产生的流量吗?
以及这个issue应该可以close掉了今天release之后?
是的, 目前确实会遇到这个问题. 但是考虑到一般视频的实际播放长度影响并不会很大. 加 header 和 attribute 的方法其实我目前也同时采用了, 根据 hostname 判断.
很抱歉,没能找到你加header的方案的commit。
好吧。。我看见这个commit msg就直接跳过了。。bilimac是啥?
@fqj1994 http://bilimac.eqoe.cn/ 抱歉 commit-msg 中没有特别注明, header 这个和 bilimac 是两个修改, 但是因为是之前在本地改完后没及时 push 上去, 所以在一个 commit 里.
又一个弹幕转ass的播放器。。然而我这里mpv总是没法用range-request来seek这种网络的视频。直接console打一个说视频没法seek。。。
Resolved in v0.7.5 release.
在使用html播放器时,跳跃播放时常会卡住