xfangfang / wiliwili

第三方B站客户端,目前可以运行在PC全平台、PSVita、PS4 、Xbox 和 Nintendo Switch上
https://xfangfang.github.io/wiliwili
GNU General Public License v3.0
3.11k stars 145 forks source link

如何在linux上手动指定解码器类型? #206

Closed hujiadfr closed 10 months ago

hujiadfr commented 11 months ago

我的电脑为Fedora AMD+N卡双显卡笔记本。wiliwili开启硬解后,无论使用h264 还是h265, 它默认使用nvdec-copy 在独立显卡上硬解码,比较耗电。如何手动指定mpv的hwdec=vaapi-copy呢,现在只有进入系统前完全关闭独显才能做到。

xfangfang commented 11 months ago

@hujiadfr https://github.com/xfangfang/wiliwili/wiki#自定义硬解

hujiadfr commented 11 months ago

谢谢,解决了。不过有个问题,我用的是flatpak版本,虽然vaapi-copy可以手动指定,但是vaapi却不行,这是为什么呢?

xfangfang commented 11 months ago

@hujiadfr https://mpv.io/manual/stable/#options-vd-lavc-dr https://github.com/mpv-player/mpv/blob/44cf6288c73b71d22a98870cb08b1daf9da5e048/libmpv/render.h#L270-L273 https://github.com/xfangfang/wiliwili/blob/7541334784c96991d6d391a5acda5410a875f1af/wiliwili/include/view/mpv_core.hpp#L204-L207

原因大概就是上面的链接所写,wiliwili使用的libmpv接口必须开启 vd-lavc-dr 才能在部分平台去掉copy,要使用 vd-lavc-dr 在wiliwili 中就需要开启 MPV_RENDER_PARAM_ADVANCED_CONTROL

因为我平时用的设备主要是switch和macos,这个选项在macos没有作用,之前在switch上开启这个选项会导致CPU占用偏高,所以用处也不大(最近有点变化,我还没来得及去测试)。 因为开启了 MPV_RENDER_PARAM_ADVANCED_CONTROL 有导致程序死锁的风险,所以我就没有开启。