博客
笔记
把播放链路拆开:MPV、madVR 与字幕
播放器不是「装一个就完事」。渲染链、字幕时轴、音频输出三段拆开之后,同一个片源的观感差别大得离谱。
2 天前 2 分钟读完 506 字
片源固定、屏幕固定、房间灯也固定,剩下能动的只有播放器。这一年我把播放链路拆成三段单独调:解码与渲染、字幕对齐、音频输出。
渲染链:别让缩放算法替你决定画面
默认的 bilinear 缩放在 1080p 屏上还算体面,一到 1440p 放大就糊。换成 madVR 之后最直观的变化是锐度高光不再糊成一团,代价是显卡满载、风扇起飞。
# mpv.conf 里跟渲染相关的几行
profile=gpu-hq
scale=ewa_lanczossharp
cscale=ewa_lanczossharp
dither-depth=auto
ewa_lanczossharp 会比默认的 bilinear 多吃一截显卡,但在 24 帧的片源上,它换来的是线条干净、光晕收敛。反过来,如果你只是看 720p 的电视录制,这套配置只会让风扇更吵。
字幕:mpv 的时轴偏移能救急,但别长期凑
字幕对不齐,九成是版本不同(BD 与 TV 的起始时间差几十帧)。mpv 的 j / J 是 ±0.1 秒粗调,Shift 组合是 ±0.01 秒细调,看完再记录偏移值写进字幕文件名。
我自己的规矩是:偏移超过 1.5 秒就不救了,重新找字幕。硬凑的结果通常是前半段对、后半段又开始漂。
音频:能直通就直通
有独立音箱时,把 AC3 / DTS 直通给解码器比自己混音干净得多;只有在用耳机的时候我才让 mpv 自己做下混,否则夜间对白的音量跳变很难受。
- 直通:
audio-spdif=ac3,dts,eac3 - 下混到双声道:
audio-channels=stereo - 动态压缩(夜间):
af=dynaudnorm=f=250:g=15
三段拆完的副作用是配置散在三个地方,换机器要重新搬。所以我把这三个文件都丢进 dotfiles 仓库,只留一行 mpv --config-dir 指向它。
一点保守建议
折腾播放器的边际收益掉得很快。把渲染链调对、字幕不再漂、音频不做二次劣化,之后再改基本都是心理作用——包括我上面那行 dither-depth=auto,坦白说我没听出区别。
相关文章
文章目录