想换下模板

其实不是因为原来模板有多不好看,但是老版的

“引用”(Blockquote)

实在是太丑了!本来衬线中文就不怎么好看了(虽然我个人反而比较喜欢)这再变成斜体,根本毛都看不清了(obligatory:中文并没有(不该有)斜体!)。

硬要说的话,各种链接还在用 web 1.0 的下划线实在也是有碍观瞻。而且这个模板非常老了,有一些奇怪的问题(比如右下角的管理链接无法定制而且还是老版等等),也是该换了。

大致浏览了下 WordPress 提供的简约风格的双栏免费模板,基本还算对眼的有:

其实硬要说都差不多:

QQ截图20160403025054.png
Plane

优点: 侧栏棒;正栏的作者信息和评论按钮比较明显

缺点:配色偏淡(就俩选择,另外一个是淡蓝色),块引用还是斜体;首页缺少tag和分类信息

QQ截图20160403024513.png

Sequential

 

优点:布局不错,例如header

中立:配色诡异,不过有四种选择,这个红蓝还行。

缺点:侧栏设计太粗犷;首页缺少tag和分类信息

QQ截图20160403032728.png
Big Brother

缺点:字体太大(这是normal,选成small又太小了);侧栏丑

p.s. 这模板好像有bug每次使用都会重置整个sidebar…呃其实下面那个也有这问题。

QQ截图20160403033528.png
Nucleare

中立:侧栏还行,但是间距太宽

缺点:配色偏淡;首页缺少tag和分类信息


 

暂时用的是第一个,各位觉得哪个最好看?

顺便也把字体改成无衬线了。不过这么一改就更凸显了中英混排显得太挤的问题,以后也试着手动在之间加空格吧(虽然我个人非常不推崇手动加)。

破解已经复制到硬盘上的DVD-video视频文件

今天从网上下了个别人分享的DVD-video,播放.vob或者.ifo文件的时候发现有乱码(没有正确解密)。通常来说,这是一个非常简单的操作——众所周知DVD的加密(Content Scramble System,简称CSS)早在1999年就已经被破解了。一般而言,只需要用DVD Decrypter之类的软件处理一遍就行了。可是这次有点烦,因为原始发布这并没有抓一个镜像文件出来,而是简单地复制了里面的文件(主要是VIDEO_TS文件夹里的内容)出来而已。我研究了半天,得出一个结论:DVD Decrypter似乎并不支持直接选择文件夹破解。

既然如此,下一步应该也不难想到:先把这些文件封装到ISO里呗!然而我试了UltraISO和ImgBurn这最常用的两个ISO制作工具,和网上推荐的Folder2ISO ,制作出来的ISO然都无法用DVD Decrypter打开,提示“Disc Not DVD”:

QQ截图20160402214233

我一时居然不知道怎么办了。去网上漫无目的地搜索,试了包括但不限于:

  • AnyDVD(收费软件,找的破解…)
  • DVDFab(收费,用的试用版)
  • Any DVD Cloner Platinum(收费,用的试用版)

等软件,一个都不好使。首先他们大多也不支持直接选择文件夹,如果用我做的镜像就也会提示各种各样的错误(或者rip出来一个照样花屏的视频出来)。

不过很幸运地,在我发在bangumi的求助帖里,有位朋友成功破解。根据他的介绍,他是用了一个叫做vobcopy的软件——只有linux版——外加libdvdcss模块破解成功的。虽然vobcopy并没有windows版,但是这是一个好的信号:至少知道这是可能的。稍加搜索libdvdcss,原来是VideoLAN(VLC播放器开发者)制作的一个开源的破解CSS的库。这个库已经被集成在VLC以及其他很多常见的开源播放器(如Mplayer,MPV)等等。我试了下,果不其然,用这些播放器(我试了:VLC、SMPlayer以及MPV)直接播放那个文件夹(和DVD Decrypter不同,大多数现代的播放器都支持直接选定一个文件夹当DVD播放)或者其中的.ifo文件都完全没有问题。但是依然没有解决我最想要的:直接无损转换出一套没有加密的文件出来——这样其他不支持libdvdcss的播放器,比如我的主力PotPlayer也能直接播放。

首先我找到的是Handbrake这款经常被推荐的软件。作为一个rip DVD的工具,这软件其实相当不错:界面整洁又简单。对于破解CSS,只需要去下载最新版的libdvdcss-2.dll,然后放到该工具的安装目录下即可(注意:网上有大笔的过时教程会让你把这个文件改名为libdvdcss.dll,这在最新的Handbrake里已经是不需要的了!)。而且确实好使——我能把那些视频成功解码了(不过注意要用文件夹模式,我选ifo或者vob转不好使)。但是,这居然叫不支持直接copy——必须要二次编码,这不是我想要的。

后来,又在reddit一个帖子看到有人推荐一款叫做MakeMKV的软件。虽然名字听上去很像是小白向(众:你自己在这问题上就是小白好吧)的,但是试了下没想到相当出色。软件可以直接打开VIDEO_TS.IFO文件,然后无损把视频、音轨、章节等等转换为一个MKV文件。而且集成了破解功能,我成功地把我的DVD-video转出来了。没有二次编码,所以质量和原始文件是一样的。

按理说到这里也该告一段落了,但是身为完美主义者仍然感觉有根刺插在心里,毕竟还是没能完美破解成和原始格式一样的文件。就在我忍不住要去虚拟机里装个linux之前,我突然发现之前用imgburn生成的是ISO+MDS。嗯等等——我刚才加载的是ISO还是MDS?因为众所周知,很多ISO直接用虚拟光驱加载是没法正常播放的(但是可以直接放里面的vob文件,具体原理我也不是很清楚),必须加载MDS才行。难道在破解的时候也有关系?于是我小心翼翼地加载了下mds文件然后一开DVD Decrypter——果然可以了:

QQ截图20160402224115.png

(DVD Decrypter智能地发现了这个disc似乎有CSS)

于是我又试了下用DVD Decrypter自带的制作MDS文件的子功能,对之前用UltraISO制作的ISO制作MDS然后加载——果然也好使。

所以……虽然我承认我是有那么一点犯二了但是DVD Decrypter你明明自带制作MDS功能干嘛不支持直接读取ISO!或者干嘛不直接支持读取文件夹!这太反直觉了好么!好吧不该对一个停止开发10年以上的软件要求太多了……

有S1网友说,之所以直接ISO不行的原因是文件体积以及虚拟光驱软件本身的问题。引用:

这其实根源在你用的虚拟光驱上
比如 Daemon,直接加载 ISO 的话,它会把小于某个阈值 (大概是 1G) 的 ISO 以 CD 方式加载,结果就是 DVD Decrypter 不认,MPC 里打开这个盘符也会提示不兼容什么的
创建 MDS 之后加载 MDS文件,就可以确保是以 DVD 方式加载

感觉有几分道理。随便试了下手头的ISO,确实符合这个规则:只不过阈值好像不是1G,我碰到了个845MiB的就不能直接播放了ISO了,必须用MDS;能播的最小的是889MiB。可能阈值是一张CD的极限容量?稍后我在官方论坛证实了这个问题的存在。随便去alternativeto搜了个替代品Virtual CloneDrive,果然就没有这样的问题。这也让我不由得自问,为什么我还在用Daemon Tools这种现在捆绑多到我都吓得不敢升级的软件?纯粹是惯性使然罢。另外,我发现AnyDVD有个小功能,在开着AnyDVD的同时,会自动修复Daemon Tools这个bug,正确加载ISO文件。

题外话,rip出来的视频有居然两个,第一个是PV本体+片尾logo+版权说明,第二个是PV本体……所以为什么会有两份啊,多浪费空间!好吧本来日本人拿DVD来放一个几百M的PV的行为已经是完全地浪费了,不用白不用。

网易云音乐的版权、海外播放限制及破解

更新:OMG近期在网易改版后已失效。下文内容仅作存档用未作修改,不保证其内容依然有效(准确地说应该已经无效)。


Intro

众所周知,网易云音乐有两种限制:

  1. 大部分歌曲不对海外用户开放。
  2. 部分歌曲会因为版权问题“下架”,所有用户,包括海外和国内用户,一般情况下都无法播放;

对于两种限制的具体表现形式以及破解方式在客户端和网页端也各有不同。下面,将分情况讨论。另外,我会主要以我这个歌单作为示例。在测试歌曲的能否播放时,均尝试多遍,以防出现误判。但是请注意,如果你要重做我的测试的时候,请确保播放出的歌曲是你点击的歌曲——有的时候在歌曲无法播放的时候,会自动跳到别的歌曲,如果没注意会以为可以正常播放。另外,在对客户端进行测试的时候,要小心缓存对结果的干扰。

网页端

海外用户限制

UI限制

对于海外用户,如果不经过任何破解,所有的歌曲都会显示为灰色:

QQ截图20160326214110

如果点击播放,会提示“由于版权保护,您所在的地区暂时无法使用。”

这个可以通过3种方式破解:

一、充值会员“破解”:网易对海外的收费会员开了个后门,如果是会员,将享受到和国内会员一样的待遇。

二、用国内服务器反向代理网页端地址 http://music.163.com。下面有几个网友义务提供的服务器,你可以用hosts的方式将music.163.com指定到他们:

UnblockYou的:158.69.209.100

Migflyway的:45.32.72.192 / 45.63.69.42

三、将你的DNS设为上述地址。本质是一样的,因为这几个服务器配置成充当DNS服务器的时候,会把music.163.com解析给自己(来代理)。而且这样做会兼有对其他一些国内网站的支持功能。

四、使用user.js脚本移除UI灰色限制。目前最为流行的是由开发的多功能脚本“跳过网站等待、验证码及登录 [CUWCL4C]”。

如果使用方法1-3,将会看到和国内用户完全一样的结果:

QQ截图20160326220247

有几首歌(例如:《我会好好的》)依然是灰色,因为这几首歌属于版权限制。

如果用方法4中的脚本,你会发现所有的歌曲都变成黑色了,这也是这脚本方式的原理所致。但是这并不代表那些版权限制的歌曲就能听了!如果你尝试去播放诸如《我会好好的》这样的歌曲,会发现会自动跳到别的歌,实际并不能用。

DNS污染

然而,如果你用了上面的方法2或4(会员是否会有问题DNS污染的问题我不知道,手头没有会员没法测试),相信你会发现,即使是黑名的歌曲,也依然不能听。这是因为网易对m10.music.126.net(网页版主要的音频文件服务器)这一域名进行了海外DNS污染:

QQ截图20160326220551

自然也就无法正常播放了。

解决方案也分为几种:

一、直接把DNS改成国内的DNS,如阿里的或者114。但是这招有时候不太好使,我这里改成国内DNS仍然会解析出127.0.0.1。而且很显然这样会有副作用,影响访问其他网站的速度(因为可能会导致分配到不佳的CDN)。所以不推荐这种方法。

二、把DNS改成上面提到的那几个UnblockYouku系的服务器。因为他们也会把m10解析出正常的、非127.0.0.1的结果。我这里会解析成113.107.57.64(广东省揭阳市 电信)。

三、用hosts强制指定服务器。先随便找一个国内的域名解析服务,例如这个,然后在得出的域名中随便挑一个(因为网易有很多CDN,所以结果也非常多)。例如,我将第一个结果,183.6.245.47 m10.music.126.net添加之后,就可以正常播放了。

四、像破解UI变灰一样,用国内服务器反向代理。

这里要先说一下网易对音频文件的处理。当你点击播放时,浏览器一开始是请求 m10.music.126.net 开头的URL没错,但是并不是这个网址就直接访问网址了,网易服务器侧会先重新给你分配一个CDN,然后重新302定向到以CDN IP+之前网址的方式重新生成的网址中:

QQ截图20160326222334

第一张是初始请求。跳转前服务器就是我利用方法2 hosts的IP的。

QQ图片20160326222424

这张是真正请求音乐文件的CDN。地址变了。

所以,这个充当反向代理的服务器其实并不会承载很大流量。他只需要做到能把那个302地址返回就行了。真正的音频文件的流量是直连到网易的CDN的。JixunMoe提供的198.47.104.134服务器就可以完成这个功能,你只需要用hosts将 m10.music.126.net 定向到它就可以。

五、根据在方法四中的描述我们可以想到,如果我们直接在请求前就手动拼出来一个跳转后的CDN IP+音频文件URL的地址出来,我们根本没必要让服务器来302跳转——也不必在乎这个服务器的域名是不是被网易污染成127.0.0.1了。上述的CUWCL4C脚本就有这个功能,不过需要设置一下。安装脚本并启用之后,访问 https://jixunmoe.github.io/cuwcl4c/config/

QQ截图20160326223046

然后勾选第一个开关即可。注意,第二个开关正是上面方法四中提到的反向代理m*.music.126.net域名的功能,但是需要配合作者的的Proxy-163本地程序才能用,这里我没用过就不做介绍了。修改之后别忘了点下面的“存储设定”。

开启之后,可以手动在几个内置的CDN中切换,切换按钮在下方播放条音量键左侧(“换”):

QQ图片20160326223748

观察请求的地址,直接就变成了带CDN的:

QQ图片20160326223820

但是其实网易依然会很蛋疼地跳转一次……变成另外一个隔壁机房(大误)的IP外加后面加了个?wsiphost=local(从正常的m10跳转过来的是&wsiphost=ipdbm)。不管怎样,我们绕过DNS污染的目的已经达到了。

版权限制

很可惜,据我所知目前没有靠谱网页端破解版权限制的方法。原理上不是不能做到(参见下面的客户端节),但是可能需要较复杂的脚本才行。

客户端

网易客户端也是走的http协议,所以其破解方式理应和网页端差不多,只不过因为不能装脚本有些时候要麻烦些。顺便一提,这里的客户端是指桌面版,手头没有Win 10没有研究过UWP版,但是应该大同小异。

海外用户限制

在不挂任何hosts、代理等的情况下海外直连客户端,还是上面那个歌单,结果如下:

QQ截图20160326224958.png

可以看到,和网页版不同并不是所有的歌曲都变灰了。除了和国内一样会有一些版权下架之外(《我会好好的》,《情歌》,点击会提示“因合作方要求,该资源暂时下架>_<”,其他的歌曲只有部分(例如:《光辉岁月》,点击提示“因合作方要求,您所在的地区暂时无法添加播放>_<”)不能播放。对于能放的歌曲(白字),通过fiddler查看http请求:

QQ图片20160326225521.png

可以看到和网页端不同,他用的并不是m10服务器。这个服务器没有被DNS污染,而且也不会经过CDN跳转,直接就会返回音频文件:

QQ截图20160326225737

但是如果你仔细观察,会发现这里有几个值得注意的地方。

第一,一切客户端和服务器的交流都是用POST的方式,把一组不知道什么意思的params传送到网易服务器/eapi/开头的地址(这不限于播放歌曲,切播放列表等所有操作都是这样)。网易返回的response倒是明文的JSON,其中包含音频文件的地址等信息。

第二,返回的音频文件地址和实际播放器再次去请求的地址并不完全一致。上图就可以看到,返回的明明是m8服务器,但是真正请求的时候却是m9服务器。但是域名后面的地址是完全相同的就是了。具体原因不详。不过无论是跳转前还是跳转后,都不是m10系列服务器,所以你不需要任何hosts应该就可以正常播放白名歌曲。

至于变灰的歌曲,每次你打开播放列表或者歌曲详情的时候,都会通过/eapi/开头的API请求一下,然后由服务器决定是否变灰。那么,让服务器决定你是大陆用户就可以了。既然明白了原理,那破解也很简单了。方法无非还是那几种,网页端UI限制部分的方法1-3(买会员,改hosts或者改DNS为UnblockYouku系的服务器让他们代理)都可以。修改后可能需要清理下缓存网易云音乐客户端的缓存:

QQ截图20160326231300

应该是和国内用户一样了。

不过就像网页版可以通过user.js把所有的灰色歌曲变成黑色一样,在客户端中,通过替换服务器返回的数据也可以实现灰色变白。只不过,因为无法插入脚本,必须采用别的方法做到。S1用户EraserKing开发的CloudMusicGear通过本地代理的方式可以实现。因为该客户端的主要目的是修复版权限制的歌曲,故将在下一节中一并介绍。

版权限制

客户端的版权限制首先和海外用户限制一样,会变成灰色字从而无法点击播放。CloudMusicGear(下称CMG)的破解方式是,每次像服务器请求歌曲列表(如播放列表)或者详情时,劫持服务器的response,然后吧其中的相应“变灰”字段替换掉。

但是仅仅这么做还不够,因为对于变灰的歌曲服务器可能并不会返回正确的音频文件地址:在POST到/eapi/song/enhance/player/url之后,服务器返回的JSON里的url是null。这就好像你用user.js替换了网页端之后,也依然不能播放版权限制的歌曲一样。

不过所幸这里有一个漏洞可以利用。网易存储音频文件的路径是类似(去掉.mp3前面的空格,我是为了防止WordPress这白痴编辑器自动转换……)

http://m10.music.126.net/20160327080809/d21cd2d289f1201480d05a4d46f93214/ymusic/2077/26dc/d01f/fcf7252b81403393a8d14e3db3c193f4 .mp3

这个具体是如何生成的,暂时未有人破解。

但是,网易曾经的使用的API是另外一套语法,会得到类似

http://m2.music.126.net/unJpXgOuxHGL21gBMKegSQ==/1902155116124844 .mp3

这样的地址。其中“1902155116124844”被称为dfsId,可以通过手动POST“c=[{{\”id\”:\”{songId}\”,\”v\”:0}}]”(其中songId为歌曲ID)到网易的API地址 http://music.163.com/api/v2/song/detail 查询得到[*]。

[*]:在之前可以用更简单的方法,直接GET http://music.163.com/api/song/detail?id={songId}&ids=[{songId}] 得到,但是近日该API已经被网易关闭。

而“unJpXgOuxHGL21gBMKegSQ==”则是对dfsId加盐后base64编码后得到,已经被网友yanunon 反向(?)出算法。CMG的实现可以参见这里

虽然网易已经启用了新版的地址,但是老版的地址却依然可以使用。因此,对于下架歌曲,只要手动向服务器通过API查询一次,把/eapi/song/enhance/player/url返回的url部分替换成自行生成的老版本音频文件地址即可。

但是这里有一个新问题,对于海外用户,使用了替换之后音频文件URL,经常完全放不出任何歌曲。如果观察会发现这种老版的地址(至少CMG生成的)都是m1或者m2服务器,所以很有可能是这两个域名海外根本无法访问(可能是因为DNS污染,可能是因为海外用户会被指向到根本没有这些歌的CDN:我这里解析m1的地址是174.35.27.74,解析m2的是1.1.1.1←这个很明显是污染了)。我有尝试hosts到上面JixunMoe提供的198.47.104.134服务器,或者用UnblockYouku的DNS,都无效。

不过,CMG提供了一个override IP的功能,可以用fiddler模块中的“x-overrideHost” flag来修改对应音频文件服务器的host。不过我不明白的是理论上这种方法应该和手动通过hosts文件指定到IP等效才对,但是事实上我这里并不行:在CMG中选择override server IP到123.138.138.131就可以播放,在hosts文件添加123.138.138.131 m1.music.126.net和123.138.138.131 m2.music.126.net就不行。

QQ截图20160327211152.png

CMG还有一些其他功能(见上图),这里就不一一介绍了。

总结

如果你用网页端,破解海外限制最简单可靠的方法有(选其一即可):

  1. 安装CUWCL4C并开启海外用户开关;
  2. 使用UnblockYouku系的DNS;
  3.  hosts添加music.163.com到UnblockYouku系的服务器,添加m10.music.126.net到JixunMoe提供的198.47.104.134。

暂时没有办法可以破解版权歌曲。

如果你用客户端,破解海外限制最简单可靠的办法有(选其一即可):

  1. 使用UnblockYouku系的DNS;
  2. hosts music.163.com到UnblockYouku系的服务器。

破解版权歌曲唯一的办法就是使用CMG。海外用户可能需要勾选override IP选项。

 

Antec的历史

今天闲着没事儿搜号称“来自加州”的Antec(安钛克),发现这公司的来历颇有意思。

如果简单地打开Antec的维基百科条目或者其英文主页,上面都会说他是一家于1986年建立在Fremont, CA的公司。不过想深挖更详细的信息,却全部欠奉。毕竟作为一家私有公司,也没把年报之类的贴出来的义务。唯一的线索是董事长“Andrew Lee”这名字一看就是华裔,会不会也像是nVidia的黄老板那样的人物?不过拿这个英文名去搜,并不能得到什么有效的信息。

无意中,我通过这样一条CEO任命的新闻,发现Antec其实居然有在台湾上市(平时习惯了用英文去搜能得到更多有效信息,结果这次反而栽了跟头!)。既然是是上市公司,那通过其台湾官网的投资者专区,就可以得到很多翔实的信息了。关于公司历史倒是和美国官网的说法差不多,除了简单提了一句在加州创始就没有太多有效内容了。但是根据创始人兼董事长李益昌(应该就是上面的Andrew Lee)的名字,可以找到这篇苹果日报的访谈“台版賈伯斯 「臥房創業」”(笑),里面对于其创业历程有详细的记载。原来这位校友(新竹交大毕业)当年作为统一(没错,就是食品那个统一)的员工,去美国开拓半导体市场。虽然最后统一半导体部门黄了,自己却在加州扎下根来建立了自己的公司Antec做电脑配件。这么看来,虽然是华人不假,而且现在主体公司也在台湾,人家是正儿八经的硅谷白手起家的,和国内常见的假洋鬼子牌子不是一个概念。所以,说“来自加州”并没有任何问题。顺便八卦一下,在另外一篇苹果日报的文章中指出,与穷小子的李不同,与他一起创业的老婆乃是台南望族出身,所以当年是有女方家族的资金的支持还是纯粹小伙子能干老婆死心塌地跟,外人就无从得知了。

另外在该访谈中有提到直到12年Antec才回到台湾借壳上市,这点在公司的年报中也有体现。在历史一段,可以看到这家上市公司的原形是在民国67年(1978年)就成立的名鐘公司,是做机电的。直到12年,被Antec收买之后改为现名。而且名钟集团(现在应该是私人公司了)还活着呢,只不过还叫“名鐘”的子公司只有大陆的宁波名钟了。在台湾上市之后,美国的Antec自然也成为其私有子公司了。

到这里也就告一段落了,顺便感慨一下,台湾人做电脑硬件这块还真是厉害…估计可以和日本当年在机电行业的统治力相媲美了。

 

几个浏览器坑爹案例小记

上次说好的什么问题都要document一下的,这次简述一下这两天被坑的经历。

Chrome

微软系的网站的自动login功能(也就是通过cookie)一直都做得稀烂。例如,如果你上Surface的网站,看右上角。有时候你会发现,虽然你明明已经是登录状态,但是那里会显示“sign in”而不是你的头像。如果点开,会发现在drop down menu里有你的账号……但是点了可能要重新输入一遍密码。这个只是稍有不便罢了,另外一个例子,也是我碰到的,就是这个微软App商店的例子。因为我的cookie记录里已经有关于微软的login信息了,所以当我试图打开这个网站的时候,他会用302重定向的方式先重定向到一个login“中间人”页面(域名是login.live.com的)然后再重新跳转回原界面。姑且不说这个用户体验是多么的糟糕,我遇到的问题是,那个跳转页面根本有问题:跳转到login.live.com之后,他似乎没能正确地读取我的登录信息,会再次跳转到下一个login.live.com的页面……如此迭代了4、5次之后,他终于放弃了治疗,直接给我返回一个纯白的页面(错误信息404)。

如果你在网上随便搜live.com blank page之类的,可以搜到无数的结果(虽然没有一个回复靠谱的,各种官腔)。不过,介于我在隐身模式以及别的浏览器没有这个问题,我想来肯定是清理一下cookie就OK了。可是很不幸地,我手动清理了所有和微软相关域名下的cookie和其他本地信息后(通过Chrome自带的选项:chrome://settings/cookies),依然会遇到这个跳转问题。我怕是可能我漏了什么微软系的域名没清理,于是进而用该工具清理了所有本地信息,结果居然依然可以重现这个问题!只不过状况略有不同:打开上面那个app的网页会直接问你登录(注意:这里就很奇怪了,所以为什么看一个App的介绍网页需要强制登录啊?如果开个新profile或者隐身模式,明明是不需要的的,可以游客浏览),登录之后又重复上面的无限跳转循环。

最后,我发现只有彻底删除

AppData\Local\Google\Chrome\User Data\Default\Cookies

这个文件才能解决。当然,代价就是我会丢失所有的cookie了。另外一个吊诡之处在于,我之前用Chrome内建的清理功能删掉所有的cookie的时候,这个文件的大小居然是不变的(2M),不过这可能是单纯地数据库没有vacuum而已。

Firefox

Firefox这次遇到的问题其实说来比较简单,就是我闲着蛋疼用Nighly跑了一下我的主Profile之后,整个local storage的文件(webappsstore.sqlite)就嗝屁了,似乎进入了只读状态。导致大量奇怪的症状,诸如脚本数据丢失、甚至无法登录Firefox Sync等等。这问题应该仅仅是个例(比如说我非正常退出了之类的),之前我经常交替用不同版本的Firefox跑同一个profile,从没出过这类问题。我只好再次删掉了整个文件——之所以说再次,是因为我上次因为Firefox的性能问题已经删掉过一次了。

(翻了下前文发现这事儿没在blog里提过,这里顺便说一下。Firefox的webappsstore.sqlite的大小会严重影响Firefox的响应速度,尤其是诸如YouTube这种本身非常消耗资源、又大量使用local storage的网站。一般人的这个文件可能只有几百K到几M而已,我那用了快10年的老profile的这个文件居然有40M之巨。删掉之后,在YouTube的流畅度立刻上升一个等级。)

当然也不是没有代价的,很多网站、甚至插件、脚本的本地信息都存在这里面。不过一般而言还好这些信息都不是特别重要,只是不方便罢了。如果真的有非常在意的数据,可以先用sqlite browser之类的软件把信息提取出来备份一下。

相比之下,Chrome的架构就要好很多了,在 AppData\Local\Google\Chrome\User Data\Default\Local Storage 下每个网站的数据是分成单独的文件保存的,想删哪个点哪个。Firefox最近也正在进行对该文件结构的改造,在不久的将来应该也会分成多个文件来提升性能(具体怎么分,会不会也按照网站分就不清楚了)。

Firefox flash

得顺便黑一下Firefox上的Flash性能了。众所周知Firefox上的Flash性能一直不怎么样,但是我以前用台式机看个视频还是很流畅的。结果最近开始,看个Twitch上的区区720P 60 fps的视频居然就疯狂跳帧,有肉眼可见的不流畅。如果用我的5年前买的笔记本来看的话(还是核显,因为笔记本win10双显卡驱动不支持浏览器开启独立GPU,FML),性能就更可怕了:整个的帧率居然只有20fps,相比之下Chrome至少能跑到40fps(在表扬Chrome的同时,可以看到Flash这东西真的无法拯救了……)。

主要的因素根据Reddit网友的说法,Chrome(据说现在IE也是了)是用的自行开发的改版Flash player,而Firefox用的是官方提供的插件版,所以性能要差劲一些。另外一个例子是Opera,虽然内核和Chrome一样,但是因为没有用pepper flash(Chrome改版)而用了Adobe官方版,性能也很差。当然,Mozilla也在开发自己的Flash player——Shumway,但是Mozilla的效率你懂的,和Valve Time™差不多了。

对于Twtich,还好现在有个脚本可以调用HTML5播放器,用了它就连我的笔记本都能流畅播放60fps的直播了。当然这个脚本并不是很完善,有时候会有音画不同步或者视频加载不出来的问题,一般刷新就能解决。实在不行,还有Live Streamer的选择——但是我比较喜欢twitch网页的界面(尤其是看聊天)。台式机的话我还是继续用Chrome+Flash看了,反正性能绰绰有余。

顺便一提,Twitch现在的control(就是播放、音量按钮)已经是用HTML绘制的了,但是在Firefox上有个绘制的bug,会导致全屏播放模式下性能极差(高CPU占用,低FPS)。我记得有个样式表workaround但是暂时找不到地址了。