Closed xfangfang closed 10 months ago
我这边的测试结果 H264@High@L4 和 HEVC@Main@L4 的1080p 硬解都OK HEVC@Main 10@L4 黑屏无法播放
@xfangfang 升级到 0.36.0 似乎能解决部分问题?https://gbatemp.net/threads/nxmp-nintendo-switch-media-player.601868/post-10234489
Updated MPV to 0.36.0 (Needed for use new FFMPEG without issue)
好像 averne 解决的 10bit 解码的问题?https://github.com/averne/FFmpeg/commit/f01d9768d872a977374fa1134e78d97dd582903d
等等 nxmp 更新再看看怎么做吧
@dragonflylee nxmp 更新 mpv 可能是因为他原来的版本太低了(0.34.1),averne 的 mpv 用的是 0.35.1 应该是正好能用FFmpeg 6.0 的。(他还没开源,或许还有一些内容要修改) 看起来 nxmp 倒是能正常用起来那个 FFMPEG,不是很清楚为啥我这边就得注释点东西才行,看起来离他更新也不远了,等等看他的更新吧。 感谢同步这些信息~
关于 /dev/nvhost-nvjpg
找到的资料如下,大概率和权限有关系?
https://github.com/switchbrew/libnx/blob/master/nx/source/services/nv.c#L27-L47
https://switchbrew.org/w/index.php?title=NV_services&mobileaction=toggle_view_desktop#NvDrvPermission https://github.com/XITRIX/Moonlight-Switch/commit/c56fbe2b4de2cd3153f07ea39cc00b8230a1dbed
Moonlight-Switch 的做法似乎是在 nvInitialize
前通过 hack 方法修改了 applet 类型
https://github.com/averne/FFmpeg/blob/tx1/libavutil/hwcontext_tx1.c#L338
@dragonflylee 好像确实是这个问题,deko3d 初始化时候也会调用 nvInitialize,所以我在borealis那边修改了一下:https://github.com/xfangfang/borealis/commit/1e45b3cdb66df7e736b384e8f6d3b690634b9e10
添加编译参数 -DUSE_DEKO3D=ON 可将应用底层图形 API 从 OpenGL 切换到 deco3d。(需要搭配适配的 ffmpeg 与 mpv)
测试绝大部分 h264/h265 视频可以硬解,运行功耗最大降低 1W+。
存在的问题:
/dev/nvhost-nvjpg
),不知道是不是和机器内已有的插件冲突现在调用 MPV 方式类似之前在 opengl2/es 上使用的 MPV_NO_FB 模式(不使用独立的 framebuffer,直接控制mpv绘制到屏幕上)。进一步的优化需要异步渲染,更省GPU,减少硬解画面撕裂(或许可以)
Many thanks to averne for the assistance, and gratitude to this hero who single-handedly improves the overall multimedia application experience on the HOS.