mpv 配置文件 基础使用
虽然个人是因为命令行和占用资源小选择使用mpv,其实他还是一个高画质播放器。说起来画质实在是很微不足道的东西啊,对于我这种主要看动画片的人来说。普通视频网站上的清晰度,youtube 480p以上就能接受的,相对来说更需要音质而不是画质。音质和画质都需要设备支持。但是音质主要还是耳机这方面吧。另一方面视频网站给的音频码率也都比较小,所以实际上并没有太高要求。
大屏幕才更需要高画质,放大以后画质的缺陷就比较明显,一般的笔记本屏幕我觉得就无所谓。
01.配置文件路径
windows下默认的配置文件位置是 %APPDATA%/mpv/mpv.conf
如果需要按用户进行区分,那么可以用C:\users\USERNAME\AppData\Roaming\mpv\mpv.conf
这个目录
另外还有一种就是:
也可以通过环境变量的方式进行指定,相对来说,还是直接在mpv目录下创建比较方便。
02.配置文件
主要进行了如下的配置
-
记住上次播放位置
-
内存缓存
-
使用硬解
-
一些画质增强的选项
参考了vcb论坛分享的配置文件http://bbs.vcb-s.com/thread-2730-1-1.html,不过我把后面按分辨率加载的配置给注释掉了,如果要用的话需要安装一个autoprofile.lua的脚本
因为之前一直用potplayer,画质方面其实没有太高要求,目前发现有一个不方便的点就是i快捷键可以显示很多状态信息,原先用potplayer是tab键。mpv不知道怎么调成有各种颜色的信息,因为白色相对于视频的颜色辨识度相对来说比较低。
实测,从任务管理器中看到这个配置下mpv 的gpu消耗是potplayer 默认配置的3倍。看一个720p的视频,我的老式笔记本的gtx960m就占用20%左右
#==============================配置文件优先级==============================
# 高优先级
priority=high
#==============================使用习惯相关==============================
# 如果需要记忆上次播放的位置,去掉下面这行的注释。不能与SVP共存,使用SVP必须把此项设为no。
save-position-on-quit
# 注意,需要mpv.conf所在文件夹有用户写入权限,或者用watch-later-directory=路径来手动指定。
# mpv.conf放APPDATA里是不会有问题的,有问题的是放mpv安装目录但mpv安装目录本身需要管理员权限
# 播放结束后不退出
keep-open=yes
#始终处于最前阶段。配合ontop-playback.lua可以使得暂停之后解除保持最前端。
ontop
#打开的默认音量,范围-1-1000,默认值100
volume=100
#最大音量设置,范围100-1000,默认130
--volume-max=130
#no-border 消除播放器边框
autofit-larger=100%x95% # resize window in case it's larger than W%xH% of the screen
cursor-autohide-fs-only # 只在全屏模式隐藏鼠标
cursor-autohide=1000 # 1秒后自动隐藏鼠标
# 想看log就取消这行的注释。mpv.log会保存到桌面
#log-file="~~desktop/mpv.log"
msg-module # prepend module name to log messages
msg-color # color log messages on terminal
# term-osd-bar # display a progress bar on the terminal
# pause # no autoplay
#########
# Cache #
#########
cache=yes
demuxer-max-bytes=400MiB
demuxer-max-back-bytes=150MiB
#==============================画质相关选项==============================
# 软解
hwdec=no
profile=gpu-hq
### gpu-api的选择?
## macOS: 只有opengl可选
## Linux: vulkan或者opengl,推荐vulkan
## Windows:vulkan、d3d11及opengl都可选。三者理论上vulkan性能最好,但依然推荐d3d11。
## 通过d3d11 api,目前mpv已支持windows的10 bit输出和HDR colorspace的设定。
## HDR metadata pass on正在跟进,独占全屏正在跟进。
#----------------------------------------
### 使用d3d11 (mpv对于windows的默认。显卡注意开自适应电源模式)
gpu-api=d3d11
# 通过d3d11-adapter可以设定mpv使用哪块显卡。详见文档:https://mpv.io/manual/master/#options-d3d11-adapter
# may help with 4K videos
vd-lavc-dr=yes
opengl-pbo=yes
# 如果要插其他视频滤镜,比如deint或者SVP,就要去掉下面这行的注释
# hr-seek-framedrop=no
# "ReClock" replacement
video-sync=display-resample
video-sync-max-video-change=5
# smooth motion
interpolation
temporal-dither
dither-size-fruit=7
# 默认6。会稍微延缓mpv启动
# 有兴趣也可以测试下error diffusion算法
# interpolation使用的算法。详见https://mpv.io/manual/master/#options-tscale
# 一些讨论见 https://github.com/mpv-player/mpv/issues/2685
# 目前的默认为mitchell。总体而言mitchell更平滑(当然不好和SVP插帧比),但会有模糊。oversample没有模糊,但不平滑(基本还原24帧的样子)
# 具体选择哪个请依据自身需求来
tscale=oversample
icc-profile-auto # 启用校色
icc-3dlut-size=256x256x256
# 默认64x64x64。会稍微延缓mpv启动
# 在mpv.conf所在目录下建一个 shaders_cache 空文件夹,以存放编译好的GPU shaders,加速启动。
# 注意!如果不放APPDATA下,确保该文件夹有用户写入权限。
gpu-shader-cache-dir="~~/shaders_cache"
# 为了应对VFR,禁用刷新率切换
# 下面这个脚本选项主要是个autospeedwin(自动调节显示器的刷新率)用的
#script-opts=autospeed-nircmd=true,autospeed-speed=false,autospeed-nircmdc="C:\nircmd-x64\nircmdc.exe",autospeed-monitor=0,autospeed-dwidth=1920,autospeed-dheight=1080,autospeed-bdepth=32,autospeed-rates="23;24;25;29;30;50;59;60",autospeed-exitrate=60,autospeed-minspeed=0.9,autospeed-maxspeed=1.1,autospeed-osd=true,autospeed-osdtime=10,autospeed-osdkey=y,autospeed-estfps=false,autospeed-spause=4
# 注意需要自己下载nircmdc,然后在autospeed-nircmdc里给出绝对路径。或者把nircmdc.exe所在位置加到PATH里
# autospeed-monitor=0是主显示器,1、2、3……是其他副显示器
# dwidth dheight bdepth 宽高和位深
# autospeed-rates="23;24;25;29;30;50;59;60",autospeed-exitrate=60 显示器支持的刷新率和退出时应返回的刷新率。23指23.976
# autospeed-spause=4 自动暂停的时间,秒为单位
#==============================音频相关选项==============================
# WASAPI音频输出(Windows)
# 其他系统请相应更改音频输出方式
ao=wasapi
# 需要独占音频则去掉注释。开启会使得其他程序没声音。
#audio-exclusive=yes
# 如果双声道系统播放多声道影片时有的声道声音没出现,尝试强制设定为双声道
#audio-channels=stereo
# 规格化:
#audio-normalize-downmix=yes
# 多声道音轨downmix成双声道时,如果觉得背景音过响,角色台词声音小,尝试看看这个:https://github.com/mpv-player/mpv/issues/6563
audio-file-auto=fuzzy
#audio-file-paths=audio
alang=jpn,ja,eng,en
#aid=1
# 暂时无法根据其他的metadata选择轨道,mpv又默认偏好外挂轨道,常常选到我不想要的音轨
# 有类似情况的话就用aid=1始终选择第一条音轨再自己手动调吧
# 设计者也是这么推荐的:https://github.com/mpv-player/mpv/issues/967#issuecomment-94744964
#==============================字幕相关选项==============================
sub-auto=fuzzy
sub-file-paths=subs
slang=chi,zh-CN,sc,chs
#sid=1
# 字幕显示出来和xy-subfilter不一样?尝试启用下面的设置
# 关乎字幕是否随视频拉伸
#sub-ass-vsfilter-aspect-compat=no
# 关乎字幕模糊的设定
#sub-ass-vsfilter-blur-compat=no
# 即使都用上了也不一致?那不是这两个选项的问题,重新注释掉这两行,回帖问吧。(多半是vsfilter/libass其中一个的bug)
# 根据视频是否是HDR以及视频aspect ratio决定是否启用blend-subtitles的profile
# 目前HDR->SDR建议关闭blend-subtitles,见https://github.com/mpv-player/mpv/issues/6368
# 如果hdr-compute-peak将来继续改进可能可以兼容blend-subtitles
[HDR_or_21:9]
profile-desc=cond:(p["video-params/primaries"]=="bt.2020" or p["video-params/aspect"]>=2.0)
blend-subtitles=no
# 使字幕输出在黑边上
sub-ass-force-margins=yes
[SDR_and_16:9]
profile-desc=cond:(p["video-params/primaries"]~="bt.2020" and p["video-params/aspect"]<2.0)
blend-subtitles=yes
sub-ass-force-margins=no
#==============================截屏相关选项==============================
screenshot-format=png
screenshot-tag-colorspace=yes
screenshot-high-bit-depth=yes
# --screenshot-directory String (default: ) [file]
# --screenshot-format Choices: jpg jpeg png webp (default: jpg)
# --screenshot-high-bit-depth Flag (default: yes)
# --screenshot-jpeg-quality Integer (0 to 100) (default: 90)
# --screenshot-jpeg-source-chroma Flag (default: yes)
# --screenshot-png-compression Integer (0 to 9) (default: 7)
# --screenshot-png-filter Integer (0 to 5) (default: 5)
# --screenshot-tag-colorspace Flag (default: no)
# --screenshot-template String (default: mpv-shot%n)
# --screenshot-webp-compression Integer (0 to 6) (default: 4)
# --screenshot-webp-lossless Flag (default: no)
# --screenshot-webp-quality Integer (0 to 100) (default: 75)
#=============================按分辨率配置相关选项==============================
## 以下根据分辨率和视频帧率设置不同的升/降阶算法,以期获得在能不掉帧的情况下达到最好的效果
## 创建一个基于gpu-hq,用于将一些参数回归到默认的profile:
# [high_quality]
# profile=gpu-hq
# ## !!! 使用 fbo-format=rgba16hf 可能能提高效率
# fbo-format=rgba32f
# ## !!! 使用 fbo-format=rgba16hf 可能能提高效率
# vd-lavc-threads=0
# # 1080 * 1.414213 / 4 = 381.8
# [low] # 240p 360p,启用两次倍增以达到4倍.
# profile-desc=cond:(p["video-params/w"]<=678 and p["video-params/h"]<=381)
# profile=high_quality
# glsl-shaders-clr
# glsl-shaders-append="~~/shaders/KrigBilateral.glsl"
# glsl-shaders-append="~~/shaders/nnedi3-nns32-win8x4.hook"
# glsl-shaders-append="~~/shaders/nnedi3-nns32-win8x4.hook"
# # 1080 / 16 * 9 = 607.5
# [SD] # 480p 576p
# profile-desc=cond:((p["video-params/w"]<1080 and p["video-params/h"]<608) and (p["video-params/w"]>678 or p["video-params/h"]>381))
# profile=high_quality
# glsl-shaders-clr
# glsl-shaders-append="~~/shaders/KrigBilateral.glsl"
# glsl-shaders-append="~~/shaders/nnedi3-nns64-win8x4.hook"
# # 1080 * 1.414213 / 2 = 763.7
# [HD30] # 640p 720p 30fps
# profile-desc=cond:((p["video-params/w"]<1358 and p["video-params/h"]<764) and (p["video-params/w"]>=1080 or p["video-params/h"]>=608) and p["estimated-vf-fps"]<31)
# profile=high_quality
# glsl-shaders-clr
# glsl-shaders-append="~~/shaders/KrigBilateral.glsl"
# glsl-shaders-append="~~/shaders/nnedi3-nns32-win8x4.hook"
# [HD60] # 640p 720p 60fps
# profile-desc=cond:((p["video-params/w"]<1358 and p["video-params/h"]<764) and (p["video-params/w"]>=1080 or p["video-params/h"]>=608) and p["estimated-vf-fps"]>=31)
# profile=high_quality
# glsl-shaders-clr
# glsl-shaders-append="~~/shaders/KrigBilateral.glsl"
# glsl-shaders-append="~~/shaders/SSimSuperRes.glsl"
# # SSimSuperRes推荐关闭sigmoid-upscaling。所以在其他不用SSSR的profile中都要重新设为yes(通过重新设定一遍profile=gpu-hq)
# sigmoid-upscaling=no
# [KrigBilateral] # 另一个profile的例子
# profile=high_quality
# glsl-shaders-clr
# glsl-shaders-append="~~/shaders/KrigBilateral.glsl"
# [FHD] # 1080p
# profile-desc=cond:((p["video-params/w"]<=1920 and p["video-params/h"]<=1080) and (p["video-params/w"]>=1358 or p["video-params/h"]>=764))
# profile=KrigBilateral
# [2K30] # 1440p
# profile-desc=cond:((p["video-params/w"]<=2560 and p["video-params/h"]<=1440) and (p["video-params/w"]>1920 or p["video-params/h"]>1080) and p["estimated-vf-fps"]<31)
# profile=KrigBilateral
# # 4K videos
# [4K30] # low fps: use SSIM to downscale
# profile-desc=cond:((p["video-params/w"]>2560 or p["video-params/h"]>1440) and p["estimated-vf-fps"]<31)
# profile=high_quality
# glsl-shaders-clr
# glsl-shaders-append="~~/shaders/SSimDownscaler.glsl"
# # SSimDownscaler要求。需要在其他profile中重新设为yes(通过重新设定一遍profile=gpu-hq)
# linear-downscaling=no
# [UHD60] # high fps: use no glsl-shaders
# profile-desc=cond:((p["video-params/w"]>1920 or p["video-params/h"]>1080) and p["estimated-vf-fps"]>=31)
# glsl-shaders-clr
# # 如果是1080p屏幕播放4K,可以使用https://gist.github.com/bjin/15f307e7a1bdb55842bbb663ee1950ed
# # glsl-shaders-append="~~/shaders/acme-0.5x.hook"
# # 可以绕过chroma upscaling,并且把之后颜色转换的计算量从4K级降到1080p级。
# fbo-format=auto
# vd-lavc-threads=16
# # 4K HEVC HDR 60fps软解压力很大,默认vd-lavc-threads=0自动识别逻辑核数,分配核数+1个线程,但往往不够,不能将CPU性能压榨到极限,强行分配更多线程数以提高软解性能。
# # 或者直接开硬解,如果显卡支持的话
# hwdec=yes
视频选项方面的选项我不是很熟悉,所以参考了vcb-s压制组的科普文档,下面把原文贴上来
https://vcb-s.com/archives/7594
建议添加的配置命令
mpv 的默认渲染设置非常保守。如果你的显卡性能不是太差(近几年的集成显卡一般都已足够),建议启用一套预设的高质量渲染设置,方法是在 mpv.conf 中写上这么一行:
profile=gpu-hq
注意,使用高质量渲染设置可能会大大降低笔记本的电池续航时间,在近些年的高分辨率屏幕上(例如“视网膜显示屏”的 MacBook)尤其明显。
mpv 默认不对视频进行色彩管理。即使你没有使用校色仪对屏幕进行过校色,对于原生色域接近某一标准色域(如 sRGB 或 DCI-P3 D65)的屏幕来说,开启色彩管理仍然可以获得更准确的颜色,因此,我建议始终将色彩管理开启:
icc-profile-auto
设置将字幕渲染到视频源分辨率并随视频一起缩放并进行色彩管理,这样可以保证字幕的分辨率与画面始终一致(避免“画面模糊字幕高清”的情况),并保证字幕中“屏幕字”的颜色与画面一致:
blend-subtitles=video
如果你有中高端独立显卡,想进一步提高画面拉伸质量,可以将画面拉伸算法更改为 EWA Lanczos(即 madVR 中所谓 Jinc):
scale=ewa_lanczossharp
在很多时候,我们的显示器刷新率不是片源帧率的整数倍(例如显示器刷新率通常为 60 Hz 而动画通常为 23.976 fps),此时在默认设置下会因每一帧实际在屏幕上的呈现时间不均等而造成卡顿感(俗称 3:2 pull down judder)。因此,建议启用 interpolation 来消除这个问题(此功能非常类似于 madVR 中的 smooth motion):
video-sync=display-resample
interpolation
tscale=oversample
以上是我认为具有普适性的一些选项。其他可以定制的地方还有很多,具体可以参考官方的文档对于上百个设置的解释说明。此外,mpv 提供了第三方用户脚本支持,可以实现更多的功能(例如设置 profile 针对不同片源类型进行不同的处理),以及第三方 user shader 来实现更多的画面处理(例如 NNEDI3、RAVU 等等)。
相比在图形界面中用鼠标勾勾点点,手写配置文件的方式固然不太符合普通用户的习惯,但是“一旦接受了这种设定”,你会逐渐体会到命令行的便利与灵活。
关于 mpv 的配置方法可以另外参考:
VCB-Studio 论坛上 cczzhh 的帖子,附有详细的注释和说明
mpv 开发者 hassn 的个人 mpv 配置
mpv 开发者 Argon- 的个人 mpv 配置
补充
关于双显卡笔记本的设置
如果你使用的是集成显卡 + NVIDIA 独立显卡的 Windows 笔记本,默认设置下 mpv 只会调用集成显卡来进行渲染计算,性能有限。如果你希望利用高性能独立显卡,则需要到 NVIDIA 控制面板 – 3D 设置 – 管理 3D 设置 – 程序设置下,添加 mpv.exe,并将首选图形处理器改为“高性能 NVIDIA 处理器”,并按照上面一样将电源管理模式改为“自适应”。
如果你使用的是双显卡的 MacBook Pro,可以通过在配置文件中增加这样一行来强制 mpv 使用独立显卡:
cocoa-force-dedicated-gpu=yes
IINA 使用 mpv 配置文件
IINA 可以直接读取 mpv 的配置文件来共享设置,在偏好设置 – 高级选项卡底部勾选“使用配置目录”即可,默认的 ~/.config/mpv 即为 mpv 的默认配置文件所在目录。值得注意的是,小部分 mpv 设置是对 IINA 不起作用的,详见这里。
你也可以直接在 IINA 的高级选项卡下直接添加 mpv 的设置,只要将上文提到的设置里每一行 = 左右两边的内容分别填进“选项”和“值”中即可。
下面贴一份mpv的一位开发者Argon-个人使用的配置作为参考
# vim: syntax=config
###########
# General #
###########
input-ipc-server=/tmp/mpvsocket # listen for IPC on this socket
#load-stats-overlay=no # use local stats.lua
#save-position-on-quit # handled by a script
no-border # no window title bar
msg-module # prepend module name to log messages
msg-color # color log messages on terminal
term-osd-bar # display a progress bar on the terminal
use-filedir-conf # look for additional config files in the directory of the opened file
pause # no autoplay
keep-open # keep the player open when a file's end is reached
autofit-larger=100%x95% # resize window in case it's larger than W%xH% of the screen
cursor-autohide-fs-only # don't autohide the cursor in window mode, only fullscreen
input-media-keys=no # enable/disable OSX media keys
cursor-autohide=1000 # autohide the curser after 1s
prefetch-playlist=yes
force-seekable=yes
screenshot-format=png
screenshot-png-compression=8
screenshot-template='~/Desktop/%F (%P) %n'
hls-bitrate=max # use max quality for HLS streams
[ytdl-desktop]
profile-desc=cond:dedicated_gpu()
ytdl-format=bestvideo[height<=?2160]+bestaudio/best
[ytdl-laptop]
profile-desc=cond:not dedicated_gpu()
ytdl-format=bestvideo[height<=?1080][fps<=?30][vcodec!=?vp9][protocol!=http_dash_segments]+bestaudio/best
[default]
#########
# Cache #
#########
cache=yes
demuxer-max-bytes=400MiB
demuxer-max-back-bytes=150MiB
#############
# OSD / OSC #
#############
osd-level=1 # enable osd and display --osd-status-msg on interaction
osd-duration=2500 # hide the osd after x ms
osd-status-msg='${time-pos} / ${duration}${?percent-pos: (${percent-pos}%)}${?frame-drop-count:${!frame-drop-count==0: Dropped: ${frame-drop-count}}}\n${?chapter:Chapter: ${chapter}}'
osd-font='Source Sans Pro'
osd-font-size=32
osd-color='#CCFFFFFF' # ARGB format
osd-border-color='#DD322640' # ARGB format
#osd-shadow-offset=1 # pixel width for osd text and progress bar
osd-bar-align-y=0 # progress bar y alignment (-1 top, 0 centered, 1 bottom)
osd-border-size=2 # size for osd text and progress bar
osd-bar-h=2 # height of osd bar as a fractional percentage of your screen height
osd-bar-w=60 # width of " " "
#############
# Subtitles #
#############
demuxer-mkv-subtitle-preroll=yes # try to show embedded subs when seeking even when no index information is present
demuxer-mkv-subtitle-preroll-secs=2
sub-auto=fuzzy # external subs don't have to match the file name exactly to autoload
sub-file-paths-append=ass # search for external subs in these relative subdirectories
sub-file-paths-append=srt
sub-file-paths-append=sub
sub-file-paths-append=subs
sub-file-paths-append=subtitles
embeddedfonts=yes # use embedded fonts for SSA/ASS subs
sub-fix-timing=no # do not try to fix gaps (which might make it worse in some cases)
sub-ass-force-style=Kerning=yes # allows you to override style parameters of ASS scripts
sub-use-margins
sub-ass-force-margins
# the following options only apply to subtitles without own styling (i.e. not ASS but e.g. SRT)
sub-font="Source Sans Pro Semibold"
sub-font-size=36
sub-color="#FFFFFFFF"
sub-border-color="#FF262626"
sub-border-size=3.2
sub-shadow-offset=1
sub-shadow-color="#33000000"
sub-spacing=0.5
#############
# Languages #
#############
slang=enm,en,eng,de,deu,ger # automatically select these subtitles (decreasing priority)
alang=ja,jp,jpn,en,eng,de,deu,ger # automatically select these audio tracks (decreasing priority)
#########
# Audio #
#########
audio-file-auto=fuzzy # external audio doesn't has to match the file name exactly to autoload
audio-pitch-correction=yes # automatically insert scaletempo when playing with higher speed
volume-max=200 # maximum volume in %, everything above 100 results in amplification
volume=100 # default volume, 100 = unchanged
################
# Video Output #
################
# Active VO options are set conditionally and require my slightly modified
# `scripts/auto-profiles.lua` as well as `scripts/auto-profiles-functions.lua`.
# More information about auto-profiles in general: https://github.com/wiiaboo/mpv-scripts/blob/master/auto-profiles.lua
# on_battery() and dedicated_gpu() are my own functions in `scripts/auto-profiles-functions.lua`
# and might need to be adjusted for your system/setup.
# Defaults for all profiles
tscale=oversample # [sharp] oversample <-> linear (triangle) <-> catmull_rom <-> mitchell <-> gaussian <-> bicubic [smooth]
opengl-early-flush=no
opengl-pbo=no # "yes" is currently bugged: https://github.com/mpv-player/mpv/issues/4988
icc-profile-auto
icc-contrast=1000 # silence some warning because the profile is bad
hwdec=no
[high-quality]
profile-desc=cond:is_high(get('width', 0), get('height', 0), get('estimated-vf-fps', 0))
# hanning with this radius is broken on OSX due to OpenGL driver bug
#scale=ewa_hanning
#scale-radius=3.2383154841662362
scale=ewa_lanczossharp
cscale=ewa_lanczossoft
dscale=mitchell
scale-antiring=0
cscale-antiring=0
dither-depth=auto
correct-downscaling=yes
sigmoid-upscaling=yes
deband=yes
#glsl-shaders-append="~/.mpv/shaders/KrigBilateral.glsl"
glsl-shaders-append="~/.mpv/shaders/ravu-lite-r4.hook"
glsl-shaders-append="~/.mpv/shaders/ravu-lite-r4.hook"
glsl-shaders-append="~/.mpv/shaders/ravu-lite-r4.hook"
[mid-quality]
profile-desc=cond:is_mid(get('width', 0), get('height', 0), get('estimated-vf-fps', 0))
scale=spline36
cscale=bicubic
dscale=mitchell
scale-antiring=1.0
cscale-antiring=1.0
dither-depth=auto
correct-downscaling=yes
sigmoid-upscaling=yes
deband=yes
glsl-shaders-set=""
[low-quality]
profile-desc=cond:is_low(get('width', 0), get('height', 0), get('estimated-vf-fps', 0))
scale=bilinear
cscale=bilinear
dscale=bilinear
scale-antiring=0
cscale-antiring=0
dither-depth=no
correct-downscaling=no
sigmoid-upscaling=no
deband=no
glsl-shaders-set=""
[4K-lavc-threads]
profile-desc=cond:get('width', -math.huge) >= 3840
vd-lavc-threads=32
[4K-lavc-threads-inverted]
profile-desc=cond:get('width', math.huge) < 3840
vd-lavc-threads=0
###################################
# Protocol Specific Configuration #
###################################
[protocol.https]
cache=yes
user-agent='Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:57.0) Gecko/20100101 Firefox/58.0'
[protocol.http]
cache=yes
user-agent='Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:57.0) Gecko/20100101 Firefox/58.0'
网友评论