BOOK WALKER的新订阅(放题)服务

Book Walker(角川旗下电子书服务,下称BW)日前关闭了原有的杂志放题服务“マガジン WALKER”(下称MW),新开了“マンガ・雑誌 読み放題”服务,直接归属于BW下。

价格方面,从原来的550日元/月涨价到760日元/月(前几个月优惠价,外加有促销送一些BW的积分等),但是增加了漫画放题。对我来说漫画放题基本没有用,不过涨价2美元左右也算可以接受。

其实,我一直有在订阅日本亚马逊的放题服务,那个比较贵,大概980日元/月。优点在于Kindle的破解很成熟,所以杂志都可以下载提取备份。但是亚马逊从大概大半年前开始,放题都不再是0点更新,而是要等到日本时间快中午才更新,就很不爽,于是多定了个MW当备份。而且,MW也有一些亚马逊不包含的杂志,比如《電撃萌王》、连载ML BC的《電撃マオウ》(都是角川系)等等,也不算亏。(顺便吐个槽,作为动画情报志御三家之一的NewType,角川一直故意不出电子版,很猥琐。Animage和Animedia都有电子版而且都是放题对象。)

在今天4月1日放题活动正式启动后,我就购买了看了下。和老的MW对比,首先,新版有日本IP才能点开放题的书/杂志(和BW买电子书其实一样),MW只有登录需要日本IP,有cookie后随便看。进入阅读器后,倒是都不需要日本代理。

基本而言我看的杂志都还有,但是唯独少了看的最多之一的《声優グランプリ》。其实之前预告期间,我就发现下面的名字里没列出声G,以为只是省略了,没想到真的没有。之前《声優アニメディア》被母公司学研プラス卖给イード后,我有担心会不会影响放题阅读;结果那边没问题,反而是声G没谈妥。

这里插播一段。声G的电子版的画质一直都很差,图片压缩率很高,满脸的JPEG artifacts,而且还经常有锐化过度、缩图出锯齿的问题。相比之下,声A的可以说是超高清了。另外,我最近还发现,声G的MW版和Kindle版的颜色是不太一样的。MW版的对比度偏低,而且稍微有点色偏:

很难说哪个更好,但是至少声G的官推的sample图都是和Kindle版颜色一致,姑且认为那个应该是正确的版本吧。另外Kindle是1920px高,MW/BW是2048px,区别不大。

提取

当然,比起Kindle,MW或者说BW系的破解一直是个大难题,尤其是客户端的破解异常复杂。虽然网上有零星关于破解的消息,但是角川经常升级,所以少数掌握破解方式的人一般都不外传。(写这文的时候去看了下,发现BW居然已经直接停止支持客户端了,PC只能用web看现在。我之前装的客户端倒是还能用。)

与之相对,网页版的破解就容易许多。虽然BW/MW的js依然是加密的而且又臭又长,所以破解也很难(远超出我的能力),但是不难找到部分函数比如渲染canvas的函数,然后强行hook把解码后的图片保存。这样虽然无法做到无二次压缩保存原始图片(其实也不可能,因为网页版服务器提供的就是混淆后的文件压成JPEG),但是至少1:1比例的图源可以拿到。具体方法这里不赘述,可以参考Jixun大的日志。(要自动保存的话,Chrome需要加参数--disable-web-security --user-data-dir=XXX来破掉tainted canvas的问题(第二个参数不能省略,否则第一个参数无效)。)

之前BW用的js是viewer_image_2.0.10_2019-09-18.js,而MW用的是更老的viewer_image_v0.1.10_2018-11-15.js。两者功能基本没区别,但是渲染canvas的函数一个是window.NFBR.a6G.a5x.prototype['b9b'],一个是['B0F']。现在,两者(BW本体的web阅读器网址是的viewer.bookwalker.jp,放题的是viewer-subscription.bookwalker.jp)统一成了viewer_loader_2.0.15_2020-03-05.js,但是函数位置没变还是['b9b']

新版放题某些杂志图片的白边问题

在更新之后,我打开一本声A,首先注意到的是图片渲染好像有点小问题——有白边。

这里要先说一下BW的viewer是怎么渲染的。其渲染函数有5个arguments,分别是:

targetCanvas, page, image, drawRect, flag

第一个就是目标<canvas>元素,第二个是关于page的一些参数(见下图):

page

第三个是image的参数(其实基本就只有width和height),drawRect是你要draw的大小(取决于屏幕和zoom比例),flag是说是左页还是右页。

在正常观看的时候,由于屏幕显然没有2000+px那么高,所以实际的drawRect是一个很小的数,比如几百px。但是如果你要下载原图的话,就可以把原始的size填进来(保证canvas的高宽一致)再保存,就可以把原始大小的图片渲染进canvas然后保存了。

但是需要注意的是,page 的size(width, height)和image的size一般是不同的:BW和MW里,两者的高度基本都是2048px,但是宽度不同。以我买过的某一期My Girl为例,page size是1586px宽,image size则是1592px宽。到底哪个才是“原始大小”?

你可能会想,那我们肯定要取image size,这样才是原图嘛。其实不然:根据我的观察,page size才是图像的原始大小,而image size之所以会大一些,可能是因为混淆加密的需求,而在原始图像上加了白边凑到mod 8导致。事实上,可以分别下载两者比较,结果就显而易见。在用page size作为你的drawRect以及canvas大小后,下下来的图直接就是没有左右白边的(对于跨页图用了page size后,你下载的图能和网页viewer一样,能直接完美拼上中缝)。

但是在新版放题的viewer-subscription.bookwalker.jp里,就不是这样了:以这本声A为例,我发现page size变成了1851×2339,而image size变成了1856×2344。

而且,在viewer里都有肉眼可见的白边了,跨页图根本没法完美地拼在一起:

newbw

那么问题来了:现在我们应该渲染成page size还是image size下载呢?之前两者的高度是相同的,选择page size仅仅是等于自动切了白边,不影响有效内容;但是现在连高度都不同,会怎样渲染呢?

经过测试,可以得知:还是应该选择page size。如果使用image size导出,会得出一个看似大了一点、但是仔细看会发现图片变糊(这个在有字体的地方比较明显,看照片部分一般看不太出来)——所以其实是用原图放大搞出来的。所以,只有用page size,才能正确输出1:1比例的原图。

其实回过头去看上面我贴的那个page参数,其实已经可以看到这两者的差值(宽高各5px)正是那page对象info里的DummyWidthDummyHeight。上面举例的2048px的书,则是DummyWidth: 6DummyHeight: 0。所以答案很明显了。唯一的不同之处就是2048px的那个书即使用image size下载也不会拉伸,只是加白边而已,这里会罢了(因为渲染函数会保证宽高比不变)。

至于切割白边,由于这里1856*2339/2344~=1852,和比page size的1851只错了1,基本等于没有自带切白边,而上面说到的四周多的白边其实是原图的一部分了(否则在viewer里的渲染效果也不会中间有白边),所以只能自己下载后手动切除。

手动切除白边后,尺寸变成1835×2317,看似比之前的1621×2048要大,但是仔细对比后感觉字体还是稍微糊了些,可能还是upscale的。不过,我也发现其颜色比旧版要好(比如红色没有明显劣化),所以有可能使用了比较高的quality或者没有用sub-sampling(4:2:0或者4:2:2)。

这里对比三种:

compare

如果要问我的话,我还是觉得2048px才是没有放大过的尺寸。其他都是从比较小的尺寸放大过的(倒不是说“原始尺寸”就是2048px,因为出版社提供给BW的应该是更大的分辨率。只是BW放题这个感觉是用先缩了一次的图又拉伸了一次的感觉。)

不过,并不是所有杂志都有这个问题,比如萌王就没有。可能只是BW内部转换出了错误,比如默认所有图都是一个高宽比,不够高的加白边之类的。

目测BW放题无论是服务本身还是技术上还会有各种微调(虽然对日本程序员不抱什么希望),我们拭目以待。

ハコイリ♡ムスメ解散(附昭和偶像歌谣推荐)

ハコイリ♡ムスメ(通称:ハコムス)将于2020年4月11日正式解散

本来这文是一两年前开始写,标题是“昭和偶像巡礼(〇):ハコイリ♡ムスメ”。可以看出,是想写成系列作,从ハコムス说起,介绍下因此结缘的一些昭和偶像。结果拖延症一直没写完存在草稿里,居然拖到了ハコムス解散。硬要说的话一期生全部毕业之后,我对ハコムス的感情已经很淡,但是感觉还是有必要把这文整理出来,有个交代。

虽然是想更感性发挥一些,但是稍微打了几个草稿就深深感觉到自己的语言匮乏,大概难以传达到。所以后面几乎不可避免会变成枯燥的流水账+资料堆叠(理工男的本气),也请各位看官见谅了。

万恶之源

其实之前也在各种地方接触过不少80年代日音。主要来源有两个:一个是ACG作品里的翻唱;一个是当年下过的年间top 100合集系列。

个人对于80年代的曲风、亦或是不大量使用电子乐器的编曲风格都算是相当喜欢,相比之下70年代(或者更往前)的曲风就太老+苦大仇深,90年代J-POP彻底形成,许多主打“唱功”的歌手、乐队发迹,有很多流行的歌曲无论编曲还是主唱的音色、唱腔都完全不是我的菜,所以80年代尤其是80年代后期算是一个sweet spot。话虽如此,其实也并没有系统了解过,尤其是对于昭和偶像这个分支的接触就更少。勉强知道小猫俱乐部和中森明菜,其他的能叫上名字的就不多了,歌曲更是没怎么听过。

会误入这个领域,完全源自我当时之前在整理中川翔子的CD。众所周知翔子出过很多张Anison的翻唱碟,不过其实还有两张是翻唱流行曲的,分别是《しょこたん☆かばー4-1 ~しょこ☆ドル篇~》(翻唱偶像歌曲)和《しょこたん☆かばー4-2 ~しょこ☆ロック篇~》(翻唱女子(?)摇滚乐队歌曲)。选曲自然都是名曲了,比如第二张我比较熟悉的就有『フレンズ』『白い花』还有不用提的『Don’t say “lazy”』等,不过我们的重点是第一张。其收录曲目如下:

はんぶん不思議
吐息でネット
ロコモーション・ドリーム
赤道小町ドキッ
約束
くちびるNetwork
蒼いフォトグラフ

这些歌曲,我之前一首都没听过。但是就这么放在playlist里随便地循环播放,竟是越听越顺耳。

一般听到好听的翻唱,自然免不了去找原唱了。其中最抓耳朵的是『赤道小町ドキッ』这个,副歌超级带感。但是原唱山下久美子的声线(视频)实在太粗,我立刻吓退了。我第二喜欢的则是第一轨这个『はんぶん不思議』。

这歌当初在YouTube上意外地没几个原唱的视频,所以我最先看到的是这个某底边偶像团翻唱——还是观众拍摄的。

当时谁能想到,正是这个视频,开启了这个潘多拉魔盒。

ハコイリムスメ简介

ハコイリムスメ(直译箱娘,Wikipedia)是一个以AKIBAカルチャーズ劇場为据点的日本众多偶像团体之一。其特色是,以翻唱昭和偶像歌谣为主要活动形式。翻唱的范围主要以富士电视台(即波利佳音)的版权库为主,不过富士算是80年代偶像业的大手之一,所以范围还是相当广的。上面说是底边,其实ハコムス可能不太算地下的程度,毕竟还有能定时更新的官网和YTB channel官方Twitter的follower也是8K左右这个程度。

ハコムス成立于2014年。当时AKIBAカルチャーズ劇場举行了一个决定以后定期公演组合的试演活动,一共五组轮流演1个月。虽然在票选中ハコムス只获得了第二名,但是还是被收编了,于是就开始了长达5年的定期公演生涯。中间一共加过4次人,所以一共五期生。

其实从19年底开始,ハコムス的活动就已经进入休止。本是预定20年春季再开,结果由于受到新冠疫情的影响,年初几次预定举办的生日Live都被取消。也许是压死骆驼的最后一根稻草吧,3月初就直接宣布了解散。

其实,刚看过上面的那个视频,我还无非就是有些“中学生好棒”、“制服不错”的简单感想,尤其是颜值方面感觉也就一般般,并没有什么特别的触动。但是出于好奇随便搜了下这个组合的名字,看过了下面这两个digest的视频,我彻底被迷住了。

很难说上到底是哪里打动了我。可能是歌曲,事实上我对大多数昭和偶像的了解正是顺着这俩digest里出现的歌曲一首首去找原唱、一组组听过来的;可能是舞蹈,ハコムス在尊重原始编舞的前提下非常巧妙地融入了不少现代的口味,可以说是优秀的改编;不过,更多的还是那种青涩却又不失表现力的感觉吧。

视频中的ハコムス的成员都是一期生。里面除了我妻长的不太符合我的胃口以外,都慢慢喜欢上了。不过谁能想到大部分一期生在16、17年就纷纷脱退,只有我妻作为中流砥柱到去年才毕业呢?多数成员毕业后都进入了演艺圈,只有内山珠希好像是退圈了。下面我贴的视频,大部分都是一期生时代的。

顺便一提,在去年我妻毕业时,一期生(除了被开除的菅沼もにか)都来客串演出了。和后辈们一起唱了最经典的原创1单『微笑みと春のワンピース』,感动!

一代目队长小松もか也来了,不过没上台:

(虽然视频里有,这组照片里没有内山珠希,应该是退圈了不想被拍到。)

其他视频推荐

在沉迷之后,我当年在YouTube搜集了基本所有能找到的ハコムス的视频。其中一部分是官方自己上传到YouTube频道的,另外因为这类偶像一般外出演出都允许摄像,所以有不少粉丝录制的视频(很多甚至是4K的)。

001

这里贴几个个人觉得比较优秀的几场。

剧场公演的迷你剧。最后的歌曲是CoCo的被埋没的(自封)神曲『なぜ?』。剧中还唱了一小段中森明菜的那首名曲。

其实官方后来发了蛮多公演的曲目录像的,就不一一贴了,有兴趣的可以自行去翻阅下。大多是耳熟能详的昭和偶像经典曲目(尤其是小猫的)。

这场(肉フェス TOKYO 2015 春)翻唱曲单是小猫的『真赤な自転車』、万恶之源CoCo的『はんぶん不思議』和アイドリング!!!的『baby blue』,可以算是经典联唱了。原创曲目部分在 https://www.youtube.com/watch?v=dVJNCZe2re0

Marina的成名作『深呼吸して』!这三人的演绎甚至可以媲美原版,能有人录制这个实在是太感激了。

另外如上面提到的,ハコムス后来也出了不少原创歌曲,质量还不错。个人最喜欢前两张Single,官方有完整的MV可以看:

作为一个远在他乡的屏幕饭,别的能做的也不多,就买了两张有通贩的专辑外加一期生原始录音版的前四张单的HR数字版。

IMG_20200307_001605

之前有在推特提过,左边这张的封面是致敬小猫的二专「夢カタログ」:

昭和偶像巡礼

因为ハコムス而去了解、听的昭和偶像按照沉迷的顺序大概有下面这么些。既然本来的巡礼憋不出来了,就用这里的地方每组简单聊几句外加贴下个人喜欢的曲目吧。懒得加试听地址,所以估计也没人真的会去听就是了233

CoCo

首先自然是上面万恶之源『はんぶん不思議』的原唱啦。

CoCo是89年左右所谓的“偶像之冬”期间混得还不错的组合之一,和小猫一样也是富士台一手捧出来的(不过和秋元康没关系)。初始成员五人,瀬能あづさ中退单飞(据说是觉得自己唱功好嫌队友拖后腿 [XXX,我不做偶像啦!]。不过单飞之后没飞起来就是…)。其中人气最高的应该是三浦理恵子,其声线非常尖在分唱的时候非常突出(比如『はんぶん不思議』里那句“あなた意地悪”不知道迷倒多少人)。

CoCo共出了14张单曲,卖的最好的就是2单『はんぶん不思議』,不过国内最有名的应该是《乱马1/2》的主题曲,1单『EQUALロマンス』——《ロザリオとバンパイア》那张经典的翻唱专辑里就翻唱过(by 黒乃胡夢(CV:福圓美里)・白雪みぞれ(CV:釘宮理恵))。

CoCo的歌曲总体我觉得是比较上乘的,现场演出我也看了不少,编舞和衣装实话说倒是不太符合今天的审美…

个人推荐曲目:

はんぶん不思議
なぜ?
Equalロマンス
横浜Boy Style
さよなら
思い出がいっぱい
Newsな未来

波利佳音出过叫CoCo大百科的CD套装,收录了全曲,收藏很方便,我也买了张。另外,有个韩国的铁粉的私人网站上有CoCo几乎所有的影音资源下载,可以说是真爱了。其他也有几个很全的个人资料站,比如这几个:

(这俩站长准确地说其实都是CoCo成员宮前真樹的厨。宮前现在还算是活跃在圈内,虽然不是歌手就是了。)

おニャン子クラブ

呃,小猫俱乐部要仔细说可能得写个几万字了:毕竟是现象级偶像团,秋元康事业的起点,也算是今天流行的女子大型偶像团的开山鼻祖。

先推点组合的歌:

NO MORE 恋愛ごっこ
割ってしまった卵
夏休みは終わらない

真赤なミニスカート
避暑地の森の天使たち
FENを聴かせて
じゃあね
ウェディング ドレス
未完成なジグソーパズル
真赤な自転車

重点提一下『FENを聴かせて』这个,虽然是小猫名义,其实是小猫早期老大新田惠利单独vocal的。虽然她solo很烂,但这歌非常耐听,我现在还放手机听。这里的FEN是指日本的美军电台,也是很有时代特色的产物了。

うしろゆびさされ組

之前说过岩井由紀子(昵称/solo译名为ゆうゆ)她和后来成为秋元老婆的高井麻巳子组合的“うしろゆびさされ組”是我最喜欢的小猫成员。她们的歌曲推荐如下:

うしろゆびさされ組:

偏差値BOY
うしろゆびさされ組

上手な恋の飲みかた
天使のアリバイ
渚の『・・・・・』
かしこ
あぶないサ・カ・ナ

高井麻巳子:

メロディ
かげろう
シンデレラたちへの伝言

ゆうゆ:

爪を噛んでた
-3℃

(嗯……不得不承认ゆうゆ的歌大部分一般或者有点怪)

其他比较喜欢、而且solo比较成功的小猫成员有:

河合その子

小猫第一美少女!虽然我更喜欢前期那些傻白甜的歌,但是后期转型蛮成功,出了不少有音乐性的曲子。除了高井之外另外一个被内部吸收的(嫁给了给小猫以及自己大量写曲作曲家:後藤次利)。另外有传言小猫光速解散就是因为秋元和后藤分赃不匀(误),权当八卦了。

推荐曲目:

涙の茉莉花LOVE

恋のチャプターA to Z
さよなら夏のリセ
空を見上げて
海の足跡

渡辺満里奈

Marina可能是我第一个开始认真听的小猫solo,曲风虽然变化不大,但是就是对胃口。

推荐曲目:

深呼吸して

ホワイトラビットからのメッセージ
ちいさな Breakin’ my heart
ジェリービーンズのロマンス

(后两首强力推荐。)

嫁给了著名搞笑艺人之后处于半退休状态,不过SNS还是一直活跃。

渡辺美奈代

渡辺美奈代也算是后期一姐了,人气巨旺。上节目唱歌经常笑场。她的歌我其实很晚才开始听,但是很快就爱上了。很甜!

推荐曲目:

瞳に約束
雪の帰り道
TOO ADULT

ちょっと Fallin’ Love
Winterスプリング、Summerフォール

现在还在走穴唱歌卖情怀,有点唏嘘。

小猫就说这么多了,其他几位solo出道的比如内海和子、城之内早苗、国生さゆり(『バレンタイン・キッス』应该家喻户晓了)之类大多前2张单都还是蛮好听的,可以去自行了解下。

斉藤由貴

大人物不需要多介绍了。

推荐曲目:

卒業
Axia ~かなしいことり~
いちご水のグラス
「さよなら」

菊池桃子

大人物+1。

推荐曲目;

卒業-GRADUATION-

もう逢えないかもしれない
Starlight Movement

叫『卒業』的名曲有点多。桃子的声音非常空灵。

南野陽子

应该也算大人物,不过国内好像流行程度低一些?

推荐曲目:

接近(アプローチ)
話しかけたかった
パンドラの恋人
はいからさんが通る

个人觉得曲子都不错,但是这种音色不是特别耐心。

松田聖子

圣子更是轮不到我来推荐所以就贴几个烂大街的。

赤いスイートピー
SWEET MEMORIES
瞳はダイアモンド

ribbon

和CoCo一样也是富士台节目里的乙女塾产生,算是妹妹团。人气就差很多了,曲风倒是挺有意思,很不偶像,有点像三重唱那种。

推荐曲目:

リトル☆デイト
あのコによろしく
Be My Diamond!

第一首也是tie了らんま1/2 熱闘編的OP,所以可能会耳熟。现在流行的动画推歌手在80年代就玩烂了。

(题外话,之前有段时间YouTube上的ribbon的歌基本全都被删光或者限制日本IP,这两年却慢慢都能看了。波利佳音开窍?)

Qlair

乙女塾第三发,知名度更低了(笑)。曲风和ribbon类似,意外地良曲很多,很值得尝试下。

推荐曲目:

眩しくて

泣かないでエンジェル
パジャマでドライブ

重点推荐第一首了。

松本伊代

松本伊代当年也算是爆火了,可惜算是一发/两发屋?基本大家都是只听过前两单(也确实好听):

センチメンタル・ジャーニー
時に愛は

我前一段下了个ゴールデン☆ベスト慢慢听,结果发现明明后期的歌曲也都蛮有味道的嘛。追加推荐两首:

サヨナラは私のために
ポニーテイルは結ばない

わらべ

这个倒是ハコムス没翻唱过,而是ゆうゆ在面试小猫俱乐部的时候,演唱了『もしも明日が…。』,我专门去找来听的。也是出自某节目里的儿童/少女组合,唱一些童谣风的歌。挺萌的。

わらべ最有名的其实是那个ニャンニャン事件。具体说就是三个成员之一的高部知子当年未成年15岁,在わらべ刚开始火的时候被娱乐杂志爆出在床上和男人盖被子吸事后烟的照片,轰动社会。本来一开始还是采取的道歉、继续出演的方法来应对(并且因此导致节目收视率超高),但其男友于2个月后自杀后,高部被迫退出了节目和组合(所以后面就变成两个人了)。

ニャンニャン就是杂志里用来暗指性行为的,来自わらべ成名曲『めだかの兄妹』里的歌词(参见下面第一个视频)。小猫俱乐部名字的来源其实正是这个事件(够恶趣味的)。

推荐曲目(歌就没几首就是):

めだかの兄妹

もしも明日が…。

已经变成2人了。

チェキッ娘

这不是昭和啦,不过毕竟是富士系所以ハコムス翻唱挺多的,一并提一下。秋元康有参一脚。

哦,对阿宅来说最有名的应该是,下川みくに是从这组合出来的。

推荐曲目:

はじまり
最初のキモチ

なかよし
海へ行こう~Love Beach Love~

アイドリング!!!

也是平成的组合了,比チェキッ娘更新一点。唱功稀烂。

推荐曲目:

レモンドロップ
baby blue

 

那个这个自嗨文就到这里结束啦。

修复Twitter等网站在Chrome的字体显示问题

system-ui

Twitter的默认字体栈是

font-family: system-ui, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", sans-serif;

这里别的都好说,问题就出在system-ui这个。

system-ui这个generic font的设计思路很美好:自动调用系统字体,给用户最原生的体验。这个思路用在移动平台上、甚至Mac OS都没有大问题,但是在Windows上问题就很多。

Windows简中默认的字体是微软雅黑,英文则是Segoe UI。当然,Segoe UI是没有CJK字符的,所以会fallback到其他字体。

微软雅黑最大的问题是中文字符还算不错,但是英文和假名都巨丑无比。所以,一旦调用了雅黑来显示日文、英文内容,立刻变得不堪入目。

对比:

雅黑

微软雅黑

segoeui

Meiryo

所以,一旦system-ui导致调用了雅黑来显示非中文内容,效果立刻变得很差。

由于system-ui的这个问题,有许多主流网站已经刻意将system-ui从其字体栈中删除,例如GitHubBootstrap等等。不知道为什么Twitter目前还没有跟进(而且没记错的话,Twitter是换了新版界面之后才专门加上了system-ui)。这里有个CSSWG的相关讨论(发帖人是Chrome/Google团队的CJK字体专家Koji Ishii)。

Chrome对于system-ui的处理

不过既然标题专门提到了“Chrome”,就知道这事情没有这么简单。

确实,system-ui的behavior在Chrome和Firefox是不一致的。其核心区别在于,如何处理lang参数。

很久以前在S1发过一贴专门讲不同浏览器不同语言的fallback机制(待更新),不过这里不展开。具体到这个问题,就是Firefox面对system-ui,仍然会根据语言来选择在选项里设置的字体,而Chrome会原封不动的直接套用系统默认字体——对于简体中文Win来说,就是微软雅黑。

回到Twitter上的话,Twitter其实有个很优秀的功能就是对于每条tweet会自动分析语言,然后给那个div套上lang='xx'的选项。所以,大部分日文推是已经加了lang=ja了的(如果没加这个问题会变得更复杂)。对于Firefox,面对system-ui,看到lang=ja他会先选择你设置的日文默认无衬线字体——没记错的话默认是Meiryo——显示效果就比较美观。而Chrome里则会无脑显示为微软雅黑。

用这个HTML可以很快速地对比两者。

可以看到,对于指定了“Segoe UI”的场合,由于Segoe UI无法显示CJK字符,会fallback到其他字体。这里,无论是Firefox还是Chrome都会根据lang来选择合适的fallback字体(ja=Meiryo、zh-cn=雅黑。en的话,由于我浏览器语言优先级是zh>ja,也是雅黑)。

对于指定了system-ui的场合,Firefox的逻辑是和其他西文字体完全一样的,对于CJK字符会根据语言选择fallback字体。唯一的区别在于这里对于lang=en的场合他是选用了有衬线字体TNR,因为Firefox字体设置里对于Latin的默认比例字体是衬线而不是无衬线。不过一般网站的CSS都会在字体最后指定sans-serif,所以实践中不会见到。

而Chrome那边如上文所述,会直接选用雅黑。由于雅黑字符集全,自然所有字符都雅黑了。假名巨丑,中日不同形的字符也会变成中文字形(这里的“将”)。另外,Chrome对于lang=en汉字会fallback到宋体而不是微软雅黑也是个多年以来的quirk了,我倒是不是特别不喜欢宋体所以不是太有所谓。

另外,强调一遍以上的都是在简中系统测试的。如果你的系统是英文,那默认字体则是Segoe UI,所以是从小(字符集)往大(字符集)fallback,不会受到雅黑的污染。

Workaround

在Chrome 78之前,我是使用了一个全局的Stylus rule来对付system-ui的:

@font-face {
    font-family: system-ui;
    src: local("Segoe UI");
}

但是在Chrome 79之后,你无法再使用@font-face来重新定义保留关键字了,说是这样才符合标准(那个标准我读了几遍都读不出这层意味,专门去CSSWG问了下,不过那边的专家都说确实不应该能覆盖。另外,Firefox从来就不支持用@font-face覆盖generic keyword。)

顺便一提,我还替换了几个在Windows字体渲染效果极差的字体:

@font-face {
font-family: "M PLUS 1p";
src: local("Meiryo");
}
@font-face {
font-family: "mplus-1p-regular";
src: local("Meiryo");
}
@font-face {
font-family: "M PLUS 1p";
font-weight: bold;
src: local("Meiryo Bold");
}

既然现在不行了,那只好手动替换Twitter了:

@-moz-document domain("twitter.com") {
* {
font-family: "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", sans-serif !important;
}
}

DVD的名义时长和实际时长的不一致

之前提过,我发现直接播放DVD(ISO)和先remux或者压制之后的视频的名义时长不一样。

两者的区别很小,但是正好是一个1000/1001——比如手头这个视频,直接播放DVD显示01:20:03,但是压制后就显示01:20:08。此现象可以在几乎所有播放器重现(我测试了:Pot,MPC-BE,SMPlayer(mpv核心))。

我之前默认分开播放两者时,会分别真的遵照这个不同的时长来播放,从而得出了DVD会实际按照24/30fps播放、而压制之后会按照23.976/29.97fps的速度来播放的结论。但是真的如此吗?还是要实测才知道。

我用的测试方法如下:

  1. 用同一个播放器播放两个视频,手动不停暂停调整到保证两者的播放in sync或者基本 in sync。观察两者的时间区别(如果有)。
  2. 找一个比较好计算的时间点开启一个秒表(我用的手机)作为第三参照。
  3. 放置视频播放至少40分钟以上。再次对比视频实际内容和时间轴。

今天要写的是测试1,使用MPC-BE(我对Pot的标准程度始终无法信任…)。

首先我们打开上述视频,然后截个图记录。上图是直接播放DVD,下图是我自己rip的版本。

001.png

首先可以看到,两者的总时长如上所述,错了5秒。我从30分钟左右开始,调整到两者视频内容基本一致(最多错4-5帧,也就是+-200ms以内)。这里可以看到,从我选的这个时间点两者的时间已经有所不同了,但是相差只有1-2s左右。另外秒表我用的手机,这里没有拍进来,我是从上面的视频的00:31:00开始计时。

经过大约40多分钟的放置play,我们来看看结果。

首先是视频内容:两者依然基本是in sync的,虽然可能稍微差了那么一点点,但是最多也只有几百ms的区别。这证明,两个视频的实际时间/播放速度是一致的,否定了上面说的“播放fps不同”的假说。那么名义时间呢?显然时间不可能还保持只有1s的差距,否则最后结束时间差的那5秒哪里去了!

事实上,正是如此——但是出乎意料的是,这两个视频居然都没有和我的秒表一致!

 

003

可以看到,本来我的秒表是和上面的视频(DVD)的秒位应该是一致的,但是现在上面的要慢高达2秒;而下面的视频(rip)则比比秒表慢了2秒左右(一开始就慢1秒多,所以间隔基本没变)。

两个视频的名义时间的差距,算上最开始就慢了1秒多,相当于在43.5分钟内又多偏移了3秒左右,倒是基本符合1001/1000差:

2612.7*1001/1000-2612.7~=2.613
2612.7-2612.7*1000/1001~=2.610

(正算反算都是2.61秒左右)

也就是说,虽然视频实际播放的速度一致,但是显示的名义时间却至少有一个不是准确的,甚至两个都不准(不说死是因为我无法确认我手机秒表的准确性)。

硬要选一个的话,下面的视频的名义时间比较接近我的秒表。下面的视频是rip过的MKV,每帧的timecode是写死的可以提取出来,最次也可以根据帧数反推——如果播放名义时间符合实际时间,证明确实是23.976fps在播放,而不是24。

介于两个视频的实际播放速度一致,如果认同下面视频名义时间准确(=实际播放时间)这个结论,就可以推出:对于DVD,播放器仅仅是是按照30/24的速度来计算以及显示总时长/当前时间的,播放时并不按照那个。

 

改天再用其他播放器再测试一个视频好了,这次准备使用Pot,使用电脑上的秒表软件而非手机,另外准备使用一个真·30fps的视频测试(这次测试这个视频是film的,24fps)。

 

现在我很好奇的是,如果把DVD放在物理DVD播放器接电视播放,会怎样呢?