Reading view

There are new articles available, click to refresh the page.

AbemaTV 网页版与客户端强制 1080p

最近在看动画《佐贺偶像是传奇 卷土重来》(ゾンビランドサガ リベンジ),官方的同步网络放送有 Amazon Prime Video 和 AbemaTV。因为我已经订阅 Netflix 了,感觉 Prime Video 不怎么用得到,所以还是用免费的 Abema 吧。

然而 Abema 很不爽的一点就是动态分辨率(不如说很多流媒体网站都这样),就喜欢自己判断你网速够不够,然后给你播放带宽相应的清晰度。初衷估计是为了任何网络环境条件下都能流畅播放,可是讲道理,我就没见过这个自动判断准过几次。

就算在设置里开到最高画质,还是动不动给我跳到 480p 甚至是 360p。我他喵的到底是哪里不行,就只配看你这马赛克画质?

真是叔可忍婶不可忍,于是我去网上找有没有 Abema 强制 1080p 的方法(因为也有个 Chrome 启用 Netflix 1080p 的扩展),正好找到了一个

const open = XMLHttpRequest.prototype.open;XMLHttpRequest.prototype.open = function () {  arguments[1] = arguments[1].replace('720/playlist.m3u8', '1080/playlist.m3u8');  open.apply(this, arguments);};

看了一下,没想到原理还挺简单,就是油猴脚本劫持 XHR 请求方法,把其他清晰度的 m3u8 playlist 全部重定向到 1080p 的 playlist 上。这样不管怎样请求,实际返回的都是 1080p 清晰度的源了。想想确实是这个理,高啊!

还好以前捣鼓过一段时间 HLS 相关的东西,所以这些不算陌生。不过实际使用的时候发现 XMLHttpRequest 并没有拦截到 playlist.m3u8 之类的请求,看了一下,原来是 Abema 请求的时候改用了 fetch API。反正大同小异,稍微修改一下就行了。

修改后的脚本同样放在 Gist 上:

// ==UserScript==// @name Abema 强制 1080p// @description 把其他清晰度的播放列表强制指向1080p// @version 1.1.0// @run-at document-start// @namespace Violentmonkey Scripts// @match https://abema.tv/*// @grant none// ==/UserScript==const originalFetch = window.fetchwindow.fetch = (...args) => {  const regex = /\/\d+\/playlist\.m3u8/  if (typeof args[0] === 'string' && args[0].match(regex)) {    args[0] = args[0].replace(regex, '/1080/playlist.m3u8')    console.log(args[0])  }  return originalFetch(...args)}

题外话,好久没追过新番了,但佐贺二期开播后我现在每天都想快进到周四……

啊啊啊!

zombieland-saga-revenge-ep3

好了,网页端的问题解决了,那么客户端是不是也可以用这个方法呢?

抓包看了一下,客户端请求的确实是同样的 URL,直接如法炮制。

不过要修改客户端的请求就不像 Web 浏览器那么简单了,需要用到 MitM(中间人)攻击。目前 iOS 平台上主流的代理软件应该都支持 MitM,比如 Surge/Quantumult X/Shadowrocket。下面以 Quantumult X 为例。

开启 MitM 功能,添加主机名如下:

更新:网页版和手机版请求的是 vod-abematv.akamaized.net,iPad 上请求的是 ds-vod-abematv.akamaized.net,搞不懂,直接通配符算了。

*abematv.akamaized.net

安装并信任证书(过程略),修改配置文件,添加重写规则:

[rewrite_local]abematv\.akamaized\.net/.+/\d+/playlist\.m3u8 url request-header /\d+/playlist.m3u8 request-header /1080/playlist.m3u8

验证强制 1080p 是否成功(开启 HTTP 调试功能查看):

quantumult-x-rewrite

可以看到原本是要加载 720p 的,经过重写后实际加载的是 1080p 的 segment。

爽!

尝试为本地视频开启 AirPods Pro 空间音频

AirPods 2 之后,前段时间我又没忍住,入手了传说中的豌豆射手 AirPods Pro。

第一次体验到的「主动降噪」功能确实惊艳,虽然感觉对人声的处理还是差了点意思,但开和不开真的是两种完全不同的感受。尤其是乘坐公共交通的时候,感觉是终于夺回了一点耳朵的主导权,不用再一味地被各种噪声强奸了。

用了几个月,总的来说挺满意的,就是这人声降噪实在是普通,近处的人说话大声点就挡不住了(比如室友),只能开音乐盖过去。有人说是后续固件削弱了,不过我感觉买来就这吊样。可惜市面上还是没有能达到聋子模拟器效果的降噪耳机,遗憾。


AirPods Pro 另外一个比较受关注的新功能就是「空间音频」,简单来说就是通过耳机里的各种传感器和一系列计算来调整声音,模拟出影院级(据说)的环绕声效果。到手的时候我就拿爱奇艺上的《复仇者联盟4》测试了一下,确实挺 amazing 的。

为什么要说这些呢?其实是因为我最近下了个 EVA 新剧场版的资源,里面封装的音轨是 6.1 声道的。然而就是这个视频文件,在播放到战斗激烈的场景时,我的所有设备上,无论扬声器还是耳机都会出现爆音(clipping)。

eva-new-film

新剧场版终章真的要上映了,你庵野鸽鸽什么时候骗过你

初步排查应该是多声道音源 downmix 成双声道播放的时候出问题了,因为封装在一起的双声道粤语音轨并不会爆音。感觉挺奇怪的,难道这些播放器在 downmix 的时候默认都没有音量电平限制吗?

就在搜索解决方法时,我突然想到了 AirPods Pro 的「空间音频」功能:既然这音轨本身就是环绕声,那么如果用空间音频来播放,岂不是正好?

查了一下,目前支持为本地视频开启空间音频的播放器不多:

比如我主力使用的 nPlayer 目前就还不支持,遗憾。

另外也发现了个有意思的 App:Surround Sound Speaker Check

貌似原本是用来给家庭影院的环绕声音响系统做测试的,没想到还能拿来测试 AirPods Pro 空间音频,哈哈哈。用这个测试了一下,空间音频确实很有感觉,普通的双声道模拟环绕声的效果相形见绌,推荐各位也试试。

下面对帖子中提到的几个播放器做一下测试。


使用的视频文件如下。

测试文件①:杜比官方宣传片H.264 + AC-3MP4 封装)

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'dolby-atmos-trailer_amaze_1080.mp4':  Duration: 00:01:03.55, start: 0.000000, bitrate: 9396 kb/s    Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 8946 kb/s, 24 fps, 24 tbr, 24 tbn, 48 tbc (default)    Stream #0:1(und): Audio: eac3 (ec-3 / 0x332D6365), 48000 Hz, 5.1(side), fltp, 448 kb/s (default)

测试文件②:网上摸来的多声道 AACH.264 + AACMP4 封装)

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'ChID-BLITS-EBU.mp4':  Duration: 00:00:46.63, start: 0.000000, bitrate: 188 kb/s    Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 800x600, 26 kb/s, 8 fps, 8 tbr, 8 tbn, 16 tbc (default)    Stream #0:1(und): Audio: aac (HE-AAC) (mp4a / 0x6134706D), 44100 Hz, 5.1, fltp, 159 kb/s (default)

测试文件②:上面提到过的 EVA 新剧场版H.264 + FLACMKV 封装)

Input #0, matroska,webm, from 'Evangelion 1.11 You Are (Not) Alone 2007 [BD 1920x1080 23.976fps AVC-yuv420p10 FLAC].mkv':  Duration: 01:40:58.57, start: 0.000000, bitrate: 12663 kb/s    Stream #0:0(jpn): Video: h264 (High 10), yuv420p10le(progressive), 1920x1080, SAR 1:1 DAR 16:9, 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)    Stream #0:1(jpn): Audio: flac, 48000 Hz, 6.1, s16 (default)    Stream #0:2(eng): Audio: flac, 48000 Hz, 6.1, s16    Stream #0:3(chi): Audio: flac, 48000 Hz, stereo, s16

测试文件④:对测试文件③进行转码(H.264 + AC-3MP4 封装)

ffmpeg -i 'Evangelion 1.11 You Are (Not) Alone 2007 [BD 1920x1080 23.976fps AVC-yuv420p10 FLAC].mkv' -map 0:v:0 -map 0:a:0 -c:v h264_videotoolbox -c:a ac3 output.mp4
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'output.mp4':  Duration: 01:40:58.57, start: 0.000000, bitrate: 52 kb/s    Stream #0:0(jpn): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 559 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 48k tbc (default)    Stream #0:1(jpn): Audio: ac3 (ac-3 / 0x332D6361), 48000 Hz, 5.1(side), fltp, 448 kb/s (default)

测试结果(✅ 表示可以激活空间音频):

文件1文件2文件3文件4
PlayerXtreme
FE File Explorer❓ *
Plex✅ **

* FE File Explorer 播放 MKV 格式视频需要高级版,我就没测

** 需要修改 Plex Media Server 的配置,参考这篇文章


目前猜测触发空间音频的条件是:

  • 使用系统解码器播放
  • 音频为环绕声 AAC 或 AC-3 (E-AC-3)

由于有服务端转码的配合,Plex 的兼容性表现最好,推荐。

题外话:经过 Plex 转码以后,就算关闭耳机的空间音频,直接播放也不会出现爆音了,不知道是不是转码的时候做了处理。另外空间音频效果确实好,结尾主题曲响起的时候差点以为我没戴耳机,感觉声音真的像是从 iPad 那边发出来的一样,神奇。

日区 Apple Music 优缺点与实际体验

想在一个平台上听到所有喜欢的歌,太难了。

虽说在大版权时代,资源还是存到自己的硬盘里最踏实,但下载党也不是那么好当的。而且习惯了流媒体的便利以后,我是越来越不愿意花那个心思了。然而国内音乐平台版权之争使得听歌体验愈发水深火热,我也不得不面对现实……

在网易云音乐的歌单灰掉一大片后,我终于决定跑路。

这篇文章算是我个人使用了半年多日区 Apple Music 的感受,如果你恰巧也在纠结如何选择,希望对你有所帮助。

理想的流媒体音乐服务

  • 曲库丰富
  • 订阅价格适中
  • 可以自己上传音乐
  • 跨设备同步
  • 个性化推荐
  • 不要有花里胡哨的功能
  • 界面好看
  • 梦里什么都有

我主要听什么

  • Anisong(动画歌曲,俗称二刺螈
  • J-Pop(日本流行音乐)
  • J-Rock(日本摇滚乐)

其实我涉猎挺广泛的,各种类型都听一点。真不是精日

其他候选服务

国内的网易云、QQ 音乐啥的是靠不住了,还是放眼海外吧。

除了外区 Apple Music,还有其他几个也是我考虑过的:

  • Spotify
  • YouTube Music
  • ANiUTa

最后还是选了 AM,原因下面说。

当然,每个人的音乐口味千差万别,最适合我的不一定最适合你。

曲库还算可以

Apple Music 官方说的是「7000万曲聴き放題」,在日本所有音乐流媒体服务中算是数一数二(当然也还是得看你主要听什么)。

同样是日区,Spotify 我也试用过,可以说大部分 AM 没有的,Spotify 也没有;而 Spotify 有的,AM 基本也有,属于旗鼓相当的对手。比如说ヨルシカ、YOASOBI、Official髭男dism、あいみょん这些热门音乐人的歌,就是基本每家都有。

按照我自己使用下来的体验,其实想听的大部分歌都能在 Apple Music 里找到。

(当然这只是我个人的情况,毕竟我也不知道你要听什么)

playlist-top15

iCloud 音乐资料库

按照官方文档的描述:

如果订阅了 Apple Music 或 iTunes Match,您可以使整个 iCloud 音乐资料库在使用同一个 Apple ID 登录的所有设备上都可用。只要接入互联网,即可随时访问您的资料库。

可以理解为网易云那样的音乐云盘,曲库里没有的歌,可以自己上传。

  • 最多可以上传 100,000 首,每首最大 200MB
  • 不占用 iCloud 存储空间

这也是我选择 Apple Music 的最大原因:就算你曲库再大,总有些歌是没有的,比如各种特典 CD、会场限定等等,允许自己上传歌曲就很方便。

据说 Spotify 也可以播放本地音乐,但并不是上传到云端,还是没有 AM 好用。

与 iTunes Store 互通

iTunes Store 作为日本最大的音乐在线配信平台,可以说大部分的歌如果有在网上卖,那肯定有在 iTunes Store 上卖;如果 iTunes Store 上没有,那八成就是没有在网上卖。

有些音乐 Apple Music 上没有提供,但是 iTunes Store 上是有卖的,比如「宇宙よりも遠い場所」「少女終末旅行」的 OP、ED、插入歌专辑。还有 IM@S 偶像大师系列,万南不肯流媒体配信,唯一支持的 ANiUTa 还全都只有 short version,想第一时间听到新曲就只能上 iTunes Store 了。

毕竟都是水果家的服务,iTunes Store 上购买的专辑与单曲,也可以直接在 Apple Music 的应用中播放(废话)。

我实际使用下来,「Apple Music 流媒体提供的音乐」「iTunes Store 购买的音乐」和「自己上传到 iCloud 音乐资料库的音乐」都是一个待遇,播放、整理起来都没差别。比如下面这张图,如果我不说,你能分辨出它们的来源吗?

mixed-music-library

用 iTunes 整理资料库

哦对,现在 iTunes 已经拆成了三个独立应用,Music、Podcast 和 TV。

虽然 iTunes 的手机管理功能屎得不行(现在集成到 Finder 里去了,还是很屎,强力推荐 iMazing),但它的音乐库管理功能还是公认很强大的,metadata 编辑、智能播放列表都很好用。

而且只要添加到了自己的 iCloud 音乐资料库中,就算是 Apple Music 提供的音乐,其 metadata 也可以自由修改(比如专辑封面、艺人等),可以说是最接近本地曲库体验的流媒体音乐服务了。

itunes

没有社交元素

好吧,这对一部分人来说可能是缺点。不过我确实不喜欢那些花里胡哨的东西,不看评论,对「网抑云」也没有兴趣。

这是网易云音乐、QQ 音乐和 Apple Music 的首页对比,见仁见智吧。

netease-qq-apple

另外,虽然没有社交,不过可以在搜索里搜到其他人分享的整理好的播放列表,比如我前段时间找《钢之炼金术师》OP、ED 时就省的自己一个一个找了,也挺方便的。

官方播放列表推荐

Apple Music 的一大特色。

有个人推荐歌单、推荐电台、艺人歌单、音乐回忆歌单,等等。

其中我最中意的是编辑推荐歌单,比如:

各种艺人歌单也是入坑的好机会:

更多可以参考:「用好」Apple Music,这些是你应了解的 - 少数派

跨平台支持

在换 iPhone 之前,我在 Android 上也用过一段时间的 Apple Music(没错,竟然有 Android 客户端……),出乎意料地体验还不错,让人难以相信是那个以「自家生态圈以外的软件都做成一坨屎」闻名的🍎。

Windows 上的 iTunes,体验也马马虎虎,但感觉没人喜欢用这个听音乐吧。

虽然其他平台上也有支持,但 Apple Music 体验最好的肯定还是水果全家桶。如果你手头一部 Apple 设备都没有,那我是不推荐你用 Apple Music 的,因为很可能光是如何付款就得折腾半天……

至于网页版的 Apple Music,说实话我就没有成功打开过。🌚

切换 iTunes 账号会清空下载

说完优点说缺点。

Apple Music 的账号是跟着 iTunes Store/App Store 账号走的,不能独立设置。

也就是说如果你想要一直听日区 AM,那么就得保证 iTunes Store/App Store 的账号一直是日区(相信这对经常切外区账号下载 App 的 iOS 用户并不陌生)。

如果你临时需要下载一个只有国区 App Store 才有的 App,切了一下账号,那 Apple Music 的已下载音乐就会被清空。虽然资料库不会受影响,再登回日区账号就可以了,但又要再下载一遍还是很不爽。

看到有人说切账号会清空资料库,但我实际没有遇到过,只是清空了下载。

所以我现在一般是在 iPad 上切国区账号,下载完需要的 App,然后在电脑上通过 iMazing 安装 App 到手机,这样手机上就不需要切换账号了。

无法手动同步音乐

想要使用 Apple Music,必须开启音乐资料库同步

一旦开了资料库同步,你的设备里的音乐就会被同步成和 iCloud 中的音乐资料库一样。如果想要把一首歌传到 iPhone 里,以前是通过 iTunes 直接同步过去就行了,现在你必须先在电脑上把歌添加到资料库中,等待它上传至 iCloud,然后再等它从 iCloud 下载到手机上,而且你的所有设备里都会出现这首歌。

也就是说,用了 Apple Music,你的所有水果设备就全都共享一个音乐资料库了。想听什么就往里面加,会自动同步,所有设备上都能听。方便是挺方便,但你如果想把一些音乐 locally 放到设备上,而不上传到云端的话,那就不好意思了。

我之前想把《异度神剑 2》的 OST 放到手机里,就因为这个问题,最后只能另寻他法 —— 我可不想把 7GB 的 OST 全部上传到 iCloud 资料库里去,更何况还会被压缩。

一个解决方法就是不要用自带的音乐 App,下个其他的音乐播放器就可以了。我是在手机上下载了 VOX,然后把 OST 传到了 App 对应的文稿存储空间里解决的,手机版 foobar2000 和 Flacbox/Evermusic 也可以。

上传无损音乐会被压缩

iCloud 音乐资料库不能上传无损音乐,ALAC 会被压缩成 256kbps AAC。

如果源文件就是 MP3/AAC 格式,那么上传后不会被压缩。

alac-converted-to-aac

滚动歌词不能自己添加

Apple Music 支持滚动歌词,而且也挺好看的。不过这似乎只能是音乐发行人自己添加,用户是没办法自己添加滚动歌词的,添加的只能是静态歌词。搞不懂。

目前我感觉是 Apple Music 流媒体提供的歌大部分都有滚动歌词(听说有专门的团队负责?),iTunes Store 里买的歌,人气高的那些基本都有,但也有其他很多没有的(没错我说的就是你万代南梦宫)。

对于这些没有滚动歌词的音乐,想自己添加就只能添加静态歌词咯。

scroll-lyrics

部分功能需要科学上网

姑且放到缺点里来吧。下面是我正在使用的代理规则片段:

# 播放自己上传的歌曲DOMAIN-SUFFIX,blobstore.apple.com# iTunes Store 音乐试听DOMAIN-SUFFIX,audio-ssl.itunes.apple.com# iTunes Store 购买后播放DOMAIN-SUFFIX,streamingaudio.itunes.apple.comDOMAIN-SUFFIX,itsliveradio.apple.comDOMAIN-SUFFIX,aodp-ssl.apple.comDOMAIN-SUFFIX,video-ssl.itunes.apple.comDOMAIN-SUFFIX,mvod.itunes.apple.comDOMAIN-SUFFIX,hls-amt.itunes.apple.comDOMAIN-SUFFIX,audio.itunes.apple.comDOMAIN-SUFFIX,genius.itunes.apple.comDOMAIN-SUFFIX,genius-upload.itunes.apple.comDOMAIN-SUFFIX,genius-download.itunes.apple.com

参考:提升国内 Apple Music 体验的代理规则 - 丁丁の店

如何上车?

最后说一下日区 Apple Music 如何上车。目前的 plan 有:

  • 学生订阅,¥480/月
  • 个人订阅,¥980/月
  • 家庭订阅,¥1,480/月

其中最划算的就是家庭订阅,最多可以 6 个人共享,算下来一个人每月只要 250 日元左右。如果加点钱上 Apple One 家庭订阅(1,850円/月),每个月 300 日元,还能另外多出 Apple Arcade 和 200GB iCloud 存储空间。

如果想找人组队家庭订阅的话,推荐去蹲一下 Telegram 上的大型合租群

后记

总的来说缺点也有,瑕不掩瑜吧。

反正我用得是挺爽的,其他人咋样就不关我事了。

❌