Closed AiraNadih closed 11 months ago
@AiraNadih 请再确认一下 1.1.1 有没有这个问题,一般来说无法加载视频这个就是DNS的问题。
@AiraNadih 请再确认一下 1.1.1 有没有这个问题,一般来说无法加载视频这个就是DNS的问题。
因为我是用 scoop 安装的,我直接使用 scoop reset wiliwili@1.1.1
后发现能正常加载,说明就是 v1.2.0
才引入的问题。
我印象中没有修改和视频链接相关的功能,建议从 release 分别下载两个版本测试一下,同一时间两个版本打开“同一个”视频,如果还是存在这个问题的话,我再去研究一下看看。
问题还是存在。
我又从 release 下载了这 2 个版本到其他路径,相同的视频,v1.2.0
打开后还是不能播放。
或许是精简 Windows 版本的动态依赖导致的问题? 我不太清楚具体是哪里的改动带来的这个问题,比较这俩个版本的提交记录,差异部分太多了:https://github.com/xfangfang/wiliwili/compare/v1.1.1...v1.2.0
或许是精简 Windows 版本的动态依赖导致的问题?
有这个可能,我不知道精简后那个mpv的来源,没准可能是编译mpv的时候出的问题。
我最近主要测试了 ps4、 switch 和 mac,在我这里是完全没有问题的。
这个构建是用的 yoga 分支最新的代码,开了debug窗口,同时没有使用那么多精简的动态依赖。 https://github.com/xfangfang/DIY/actions/runs/6744809278
如果这个版本没问题,那么就说明可能是那个精简提交引入的问题。如果这个版本还是有问题,可以把播放视频没有反应的log发过来(注意在没有反应的时候可以多等一会,可以等30s再操作)
一般来说这个问题是因为 B站在返回播放链接时会随机返回pcdn视频链接,有些DNS服务器没办法解析pcdn的域名,多等一会在超时之后如果有普通CDN的链接,wiliwili会自动切到普通CDN。但是你说同一个视频 1.1.1 没有这个问题,所以看起来确实不是DNS导致的问题。
这个构建运行后直接报错了:
---------------------------
wiliwili.exe - 系统错误
---------------------------
由于找不到 libpsl-5.dll,无法继续执行代码。重新安装程序可能会解决此问题。
---------------------------
确定
---------------------------
我从 Git for Windows 里的 mingw64 依赖里复制了所有缺失的 dll ,能正常运行了。
然后发现,之前在 v1.2.0
不能加载的视频能正常播放了。
为了避免只是个例情况,我多测试了几个之前不能播放的视频。
应该就是精简 Windows 版本的动态依赖导致的。
这个构建缺失的所有依赖:
libiconv-2.dll
libidn2-0.dll
libintl-8.dll
libpsl-5.dll
libunistring-5.dll
https://github.com/xfangfang/DIY/actions/runs/6745527132
可以再测试一下这个版本,这一版和release的唯一区别是开启了debug窗口,可以看看有没有报错
https://github.com/xfangfang/DIY/actions/runs/6746362465
补上了缺失的dll,开启debug窗口,未精简动态依赖版本
补充一句,我这边测试这两个版本(是否精简动态依赖)没有区别,如果还有问题就只能让 @dragonflylee 来看看了,或许是 mpv相关的问题。
@AiraNadih 您好 能帮忙测试一下 1.2.0版本只替换 1.1.1里的 libmpv-2.dll 是否正常吗
另外您的硬件解码有没有开启呢?是不是amd的核显呢
如果是Intel 加 nVidia 的MX 系列显卡 建议将wiliwili 设置为优先使用集显
https://github.com/xfangfang/DIY/actions/runs/6745527132
可以再测试一下这个版本,这一版和release的唯一区别是开启了debug窗口,可以看看有没有报错
完整的日志:
22:41:19.435[INFO] wiliwili v1.2.0
22:41:19.437[INFO] Current working directory: C:\Users\user\Desktop\wiliwili
22:41:19.437[INFO] client: 46243426.1695361004/db8af52b-9980-7463-a31f-d027a442c2e0
22:41:19.437[INFO] cookie: DedeUserID:******
22:41:19.438[INFO] cookie: DedeUserID__ckMd5:******
22:41:19.438[INFO] cookie: SESSDATA:******
22:41:19.438[INFO] cookie: bili_jct:******
22:41:19.438[INFO] cookie: sid:******
22:41:19.438[INFO] refreshToken: ******
22:41:19.438[INFO] setting: {"auto_next_recommend":false,"danmaku":false,"danmaku_filter_bottom":true,"danmaku_filter_color":true,"danmaku_filter_level":9,"danmaku_filter_scroll":true,"danmaku_filter_top":true,"danmaku_style_alpha":80,"danmaku_style_area":100,"danmaku_style_fontsize":30,"danmaku_style_line_height":120,"danmaku_style_speed":100,"fullscreen":false,"hide_bottom_bar":false,"hide_fps":true,"home_window_state":"0,1920x1009,0x23","keymap":"keyboard","player_default_speed":150,"player_hwdec":true,"player_volume":100,"search_tv_mode":true,"video_codec":13,"video_quality":80}
22:41:19.438[INFO] Load config from: C:\Users\user\AppData\Local\xfangfang\wiliwili/wiliwili_config.json
22:41:19.438[INFO] Load window state: 1920x1009,0x23
22:41:19.438[INFO] Set app locale: zh-Hans
22:41:19.455[INFO] Using platform GLFW
22:41:19.603[INFO] glfw: GL Vendor: ATI Technologies Inc.
22:41:19.603[INFO] glfw: GL Renderer: AMD Radeon(TM) Graphics
22:41:19.603[INFO] glfw: GL Version: 4.6.0 Compatibility Profile Context 23.10.2.231013
22:41:19.603[INFO] glfw: GLFW Version: 3.4.0
22:41:19.633[WARNING] Cannot find custom gamepad db, (Searched at: C:\Users\user\AppData\Local\xfangfang\wiliwili/gamecontrollerdb.txt)
22:41:19.696[WARNING] Cannot find custom font, (Searched at: C:\Users\user\AppData\Local\xfangfang\wiliwili/font.ttf)
22:41:19.696[INFO] Using internal font: ./resources/font/switch_font.ttf
22:41:19.707[INFO] Using zh-Hans font: C:\Windows\Fonts\msyh.ttc
22:41:19.711[INFO] Using korean font: C:\Windows\Fonts\malgun.ttf
22:41:19.711[INFO] Load emoji font: ./resources/font/emoji.ttf
22:41:19.716[INFO] Load keymap icon: ./resources/font/keymap_keyboard.ttf
22:41:19.721[INFO] createWindow done
22:41:20.068[INFO] max_thread_num: 4
22:41:22.075[INFO] App is up to date
22:41:31.120[INFO] set memory cache: 10MB
22:41:31.120[INFO] MPV hardware decode: auto-safe
Cannot load nvcuda.dll
22:41:31.123[INFO] MPV Version: mpv 0.36.0
22:41:31.123[INFO] FFMPEG Version: 6.0
22:41:31.158[INFO] ========> RESUME
Playing: https://xy27x190x31x52xy.mcdn.bilivideo.cn:8082/v1/resource/1319125259-1-100026.m4s?agrr=0&build=0&buvid=&bvc=vod&bw=35612&deadline=1699029692&e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M%3D&f=u_0_0&gen=playurlv2&logo=A0010000&mcdnid=17000319&mid=******&nbs=1&nettype=0&oi=993526088&orderid=0%2C3&os=mcdn&platform=pc&sign=f37a27&traceid=trWrqvxpqUwXeX_0_e_N&uipk=5&uparams=e%2Cuipk%2Cnbs%2Cdeadline%2Cgen%2Cos%2Coi%2Ctrid%2Cmid%2Cplatform&upsig=9e64728a83f4da520c911d2870c77f6f
22:41:31.523[INFO] ========> MPV_EVENT_START_FILE
22:41:31.632[INFO] select subtitle: 中文(中国)
(+) Video --vid=1 (*) (av1 1920x1080 30.000fps)
(+) Audio --aid=1 (*) '1319125259-1-30280.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1699029692&gen=playurlv2&os=08hbv&oi=993526088&trid=a995fca41b044e718525350d45aa48efu&mid=******&platform=pc&upsig=23c8acc0d57f707a33082697bfb21837&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=1,3&buvid=&build=0&f=u_0_0&agrr=0&bw=21338&logo=40000000' (aac 2ch 48000Hz) (external)
File tags:
Description: Bilibili VXCode Swarm Transcoder v0.7.69
[ffmpeg/video] av1: Failed to read unit 1 (type 5).
[ffmpeg/video] av1: Failed to read extradata.
Could not open codec.
[ffmpeg/video] av1: Failed to read unit 1 (type 5).
[ffmpeg/video] av1: Failed to read extradata.
Could not open codec.
Decoder init failed for libdav1d
[ffmpeg/video] av1: Failed to read unit 1 (type 5).
[ffmpeg/video] av1: Failed to read extradata.
Could not open codec.
[ffmpeg/video] av1: Failed to read unit 1 (type 5).
[ffmpeg/video] av1: Failed to read extradata.
Could not open codec.
Decoder init failed for av1
[ffmpeg/video] av1: Failed to read unit 1 (type 5).
[ffmpeg/video] av1: Failed to read extradata.
Could not open codec.
[ffmpeg/video] av1: Failed to read unit 1 (type 5).
[ffmpeg/video] av1: Failed to read extradata.
Could not open codec.
Decoder init failed for av1_cuvid
Failed to initialize a decoder for codec 'av1'.
Video: no video
22:41:32.318[INFO] ========> MPV_EVENT_FILE_LOADED
[ffmpeg] tls: mbedtls_ssl_handshake returned -0x7280
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: root atom offset 0x125a9e4: partial file
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: root atom offset 0x125a9e4: partial file
[ffmpeg] tls: mbedtls_ssl_read returned -0x0
[ffmpeg] https: Will reconnect at 11839750 in 0 second(s), error=I/O error.
22:41:32.457[INFO] ========> MPV_STOP
22:41:32.457[ERROR] ========> MPV ERROR: something happened
https://github.com/xfangfang/DIY/actions/runs/6746362465
补上了缺失的dll,开启debug窗口,未精简动态依赖版本
补充一句,我这边测试这两个版本(是否精简动态依赖)没有区别,如果还有问题就只能让 @dragonflylee 来看看了,或许是 mpv相关的问题。
这个构建能播放了,不过日志里还是有报错:
22:47:38.419[INFO] wiliwili v1.2.0
22:47:38.420[INFO] Current working directory: C:\Users\user\Desktop\wiliwili
22:47:38.421[INFO] client: 46243426.1695361004/db8af52b-9980-7463-a31f-d027a442c2e0
22:47:38.421[INFO] cookie: DedeUserID:******
22:47:38.421[INFO] cookie: DedeUserID__ckMd5:******
22:47:38.421[INFO] cookie: SESSDATA:******
22:47:38.421[INFO] cookie: bili_jct:******
22:47:38.421[INFO] cookie: sid:******
22:47:38.421[INFO] refreshToken: ******
22:47:38.421[INFO] setting: {"auto_next_recommend":false,"danmaku":false,"danmaku_filter_bottom":true,"danmaku_filter_color":true,"danmaku_filter_level":9,"danmaku_filter_scroll":true,"danmaku_filter_top":true,"danmaku_style_alpha":80,"danmaku_style_area":100,"danmaku_style_fontsize":30,"danmaku_style_line_height":120,"danmaku_style_speed":100,"fullscreen":false,"hide_bottom_bar":false,"hide_fps":true,"home_window_state":"0,1920x1009,0x23","keymap":"keyboard","player_default_speed":150,"player_hwdec":true,"player_volume":100,"search_tv_mode":true,"video_codec":13,"video_quality":80}
22:47:38.421[INFO] Load config from: C:\Users\user\AppData\Local\xfangfang\wiliwili/wiliwili_config.json
22:47:38.421[INFO] Load window state: 1920x1009,0x23
22:47:38.422[INFO] Set app locale: zh-Hans
22:47:38.430[INFO] Using platform GLFW
22:47:38.545[INFO] glfw: GL Vendor: ATI Technologies Inc.
22:47:38.545[INFO] glfw: GL Renderer: AMD Radeon(TM) Graphics
22:47:38.545[INFO] glfw: GL Version: 4.6.0 Compatibility Profile Context 23.10.2.231013
22:47:38.545[INFO] glfw: GLFW Version: 3.4.0
22:47:38.574[WARNING] Cannot find custom gamepad db, (Searched at: C:\Users\user\AppData\Local\xfangfang\wiliwili/gamecontrollerdb.txt)
22:47:38.636[WARNING] Cannot find custom font, (Searched at: C:\Users\user\AppData\Local\xfangfang\wiliwili/font.ttf)
22:47:38.636[INFO] Using internal font: ./resources/font/switch_font.ttf
22:47:38.646[INFO] Using zh-Hans font: C:\Windows\Fonts\msyh.ttc
22:47:38.650[INFO] Using korean font: C:\Windows\Fonts\malgun.ttf
22:47:38.650[INFO] Load emoji font: ./resources/font/emoji.ttf
22:47:38.657[INFO] Load keymap icon: ./resources/font/keymap_keyboard.ttf
22:47:38.661[INFO] createWindow done
22:47:39.028[INFO] max_thread_num: 4
22:47:41.039[INFO] App is up to date
22:47:45.128[INFO] set memory cache: 10MB
22:47:45.128[INFO] MPV hardware decode: auto-safe
Cannot load nvcuda.dll
22:47:45.133[INFO] MPV Version: mpv 0.35.0-30-g4574dd5dc6
22:47:45.133[INFO] FFMPEG Version: git-2022-12-03-7bf74f909
22:47:45.161[INFO] ========> RESUME
Playing: https://xy106x111x236x70xy.mcdn.bilivideo.cn:8082/v1/resource/1319125259-1-100026.m4s?agrr=0&build=0&buvid=&bvc=vod&bw=35612&deadline=1699030066&e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M%3D&f=u_0_0&gen=playurlv2&logo=A0010000&mcdnid=17000319&mid=******&nbs=1&nettype=0&oi=993526088&orderid=0%2C3&os=mcdn&platform=pc&sign=f37a27&traceid=trbXIzyMLOPBjF_0_e_N&uipk=5&uparams=e%2Cuipk%2Cnbs%2Cdeadline%2Cgen%2Cos%2Coi%2Ctrid%2Cmid%2Cplatform&upsig=73de17ad805d19d1f0bf8679aa358c85
22:47:45.525[INFO] ========> MPV_EVENT_START_FILE
22:47:45.615[INFO] select subtitle: 中文(中国)
(+) Video --vid=1 (*) (av1 1920x1080 30.000fps)
(+) Audio --aid=1 (*) '1319125259-1-30280.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1699030066&gen=playurlv2&os=08hbv&oi=993526088&trid=32901a07e8e14a77b8b788eb6dd07fd1u&mid=******&platform=pc&upsig=e11fcea606fa770fac4211e7ff34cb7d&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&orderid=1,3&buvid=&build=0&f=u_0_0&agrr=0&bw=21338&logo=40000000' (aac 2ch 48000Hz) (external)
File tags:
Description: Bilibili VXCode Swarm Transcoder v0.7.69
[ffmpeg/video] av1: Failed to read unit 1 (type 5).
[ffmpeg/video] av1: Failed to read extradata.
Could not open codec.
22:47:45.816[INFO] ========> MPV_EVENT_FILE_LOADED
22:47:45.816[INFO] ========> VIDEO RESUME FROM CACHE
22:47:45.816[INFO] ========> VIDEO SEEKING
AO: [wasapi] 48000Hz stereo 2ch float
[ffmpeg/video] libdav1d: Unknown Metadata OBU type 6
VO: [libmpv] 1920x1080 yuv420p
22:47:46.242[INFO] ========> MPV_EVENT_PLAYBACK_RESTART
22:47:46.925[INFO] ========> PAUSE97%) A-V: 0.000 Cache: 15s/1MB
22:47:47.503[INFO] ========> MPV_STOP
22:47:47.507[INFO] ========> RESUME
@AiraNadih 建议您将视频编码格式设置为 HEVC 或者 H264
@AiraNadih 您好 能帮忙测试一下 1.2.0版本只替换 1.1.1里的 libmpv-2.dll 是否正常吗
另外您的硬件解码有没有开启呢?是不是amd的核显呢
如果是Intel 加 nVidia 的MX 系列显卡 建议将wiliwili 设置为优先使用集显
我按你说的测试后发现确实可以正常播放了。 硬件解码已开启,是 AMD 的核显。
我用steam deck(amd 核显)在设置了 av1 + 硬解之后确实是能复现出来这个问题。替换了 1.1.1 中的 libmpv-2.dll 后,问题消失。
可是我这个 CPU 的核显是支持 AV1 解码的,型号是 AMD Ryzen 7 7735HS
。
对于这种情况还是推荐不要用 av1,因为即使之前没问题也可能是内部出了问题然后自动变更到了软解,av1 软解应该效率比较低。
在播放器页面全屏按 f1 可以看具体用没用硬解,我对av1不是很了解,拿我的steam deck在linux的体验来说,steam deck 也是支持av1的,但是貌似不是所有的av1视频都能硬解。
可以找在1.2.0下有问题的视频,用1.1.1打开,然后按f1,看看有没有开启硬解。
对于这种情况还是推荐不要用 av1,因为即使之前没问题也可能是内部出了问题然后自动变更到了软解,av1 软解应该效率比较低。
在播放器页面全屏按 f1 可以看具体用没用硬解,我对av1不是很了解,拿我的steam deck在linux的体验来说,steam deck 也是支持av1的,但是貌似不是所有的av1视频都能硬解。
可以找在1.2.0下有问题的视频,用1.1.1打开,然后按f1,看看有没有开启硬解。
看上去似乎是能正常使用的: codec: libdav1d (dav1d AV1 decoder by VideoLAN)
下面有一行:Hardware Decode: no
下面有一行:
Hardware Decode: no
好吧。。。😂
那这情况最好还是写到文档和 wiki 里吧。
我觉得后续除了在文档和 wiki 里补充这个情况的说明之外,最好还应在用户尝试使用 AV1 和其他编码格式硬解失败时提供提示,例如通过弹窗通知或者吐司通知来实现。
不然就像我用了这么久才知道自己一直是用的 AV1 软解,硬解根本没生效。。。😂
这个其实就是硬解在不同设备上本身就可能会有问题,所以wiliwili默认在pc上也是不开启硬解的,开启的话默认也是h264。
不过也说不准是不是 wiliwili 内部用的视频播放器对amd显卡支持不足导致的,您可以用那个debug窗口里输出的视频链接放到其他播放器上播放来进一步测试硬解。
那个视频链接加了防盗链,播放时候需要指定 referrer="https://www.bilibili.com"
如果有时间可能会做类似的提醒,但是我应该不会做这个事,因为要提醒的东西太多了,都完善出来就相当于免费给B站打工了,不过欢迎提交PR。
以下是我使用 mpv 测试的日志:
(+) Video --vid=1 (*) (av1 1920x1080 30.000fps)
File tags:
Description: Bilibili VXCode Swarm Transcoder v0.7.69
.\mpv.exe : [ffmpeg/video] libdav1d: Unknown Metadata OBU type 6
所在位置 行:1 字符: 1
+ .\mpv.exe "https://xy106x111x236x70xy.mcdn.bilivideo.cn:8082/v1/resou ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: ([ffmpeg/video] ...data OBU type 6:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
VO: [gpu] 1920x1080 yuv420p
[KV: 00:00:00 / 00:09:34 (0%) Cache: 23s/1MB
[KV: 00:00:00 / 00:09:34 (0%) Cache: 36s/2MB
[KV: 00:00:00 / 00:09:34 (0%) Cache: 64s/3MB
[KV: 00:00:00 / 00:09:34 (0%) Cache: 130s/5MB
[KV: 00:00:00 / 00:09:34 (0%) Cache: 154s/7MB
[KV: 00:00:00 / 00:09:34 (0%) Cache: 167s/8MB
[KV: 00:00:00 / 00:09:34 (0%) Cache: 180s/8MB
[KV: 00:00:00 / 00:09:34 (0%) Cache: 228s/10MB
[KV: 00:00:00 / 00:09:34 (0%) Cache: 251s/12MB
[KV: 00:00:00 / 00:09:34 (0%) Cache: 302s/13MB
[KV: 00:00:00 / 00:09:34 (0%) Cache: 345s/15MB
[KV: 00:00:00 / 00:09:34 (0%) Cache: 379s/16MB
[KV: 00:00:00 / 00:09:34 (0%) Cache: 409s/18MB
[KV: 00:00:00 / 00:09:34 (0%) Cache: 425s/18MB
[KV: 00:00:00 / 00:09:34 (0%) Cache: 433s/20MB
[KV: 00:00:00 / 00:09:34 (0%) Cache: 446s/21MB
[KV: 00:00:00 / 00:09:34 (0%) Cache: 483s/22MB
[KV: 00:00:00 / 00:09:34 (0%) Cache: 487s/23MB
[KV: 00:00:00 / 00:09:34 (0%) Cache: 523s/25MB
[KV: 00:00:00 / 00:09:34 (0%) Cache: 544s/26MB
[KV: 00:00:00 / 00:09:34 (0%) Cache: 565s/27MB
[KV: 00:00:00 / 00:09:34 (0%) Cache: 574s/28MB
[KV: 00:00:00 / 00:09:34 (0%) Cache: 573s/28MB
[KV: 00:00:01 / 00:09:34 (0%) Cache: 573s/28MB
[KV: 00:00:01 / 00:09:34 (0%) Cache: 572s/28MB
[KV: 00:00:02 / 00:09:34 (0%) Cache: 572s/28MB
[KV: 00:00:02 / 00:09:34 (0%) Cache: 571s/28MB
[KV: 00:00:02 / 00:09:34 (1%) Cache: 571s/28MB
[KV: 00:00:03 / 00:09:34 (1%) Cache: 571s/28MB
[KV: 00:00:03 / 00:09:34 (1%) Cache: 571s/27MB
[KV: 00:00:03 / 00:09:34 (1%) Cache: 570s/27MB
[KV: 00:00:04 / 00:09:34 (1%) Cache: 570s/27MB
[KV: 00:00:04 / 00:09:34 (1%) Cache: 569s/27MB
[ffmpeg/video] libdav1d: Unknown Metadata OBU type 6
[KV: 00:00:04 / 00:09:34 (1%) Cache: 569s/27MB
[KV: 00:00:05 / 00:09:34 (1%) Cache: 569s/27MB
[K(Paused) V: 00:00:05 / 00:09:34 (1%) Cache: 569s/27MB
Exiting... (Quit)
我对编码格式其实并不是太了解,仅供参考。 似乎是 mpv 本身的问题?
可以参考这个回复中关于如何测试系统对硬解的支持的内容:https://github.com/xfangfang/wiliwili/issues/78#issuecomment-1416719288
mpv 默认是不开启硬解的,这里是mpv的文档:mpv.io
又搜索了下相关的信息,这个编码似乎是 B 站魔改版的 AV1 :Archlinux, 13 代 Intel 移动处理器无法硬件解码 Bilibili AV1 视频, YouTube AV1 正常
可以参考这个回复中关于如何测试系统对硬解的支持的内容:#78 (comment)
mpv 默认是不开启硬解的,这里是mpv的文档:mpv.io
事实上我本地的 mpv 的配置是:
hwdec=auto-safe
hwdec-codecs=all
不过我没测试过支持的硬解格式,等会试试,稍后更新这条消息。
那可以试一试添加 --msg-level="all=v" 如果视频正常播放,且在log里能看到 Using hardware decoding (***). ,说明成功使用硬解。
那可以试一试添加 --msg-level="all=v" 如果视频正常播放,且在log里能看到 Using hardware decoding (***). ,说明成功使用硬解。
能看到使用硬解的信息:
...
[vo/gpu] Probing for best GPU context.
[vo/gpu/d3d11] Initializing GPU context 'd3d11'
[vo/gpu/d3d11] Using Direct3D 11 feature level 12_1
[vo/gpu/d3d11] Device Name: AMD Radeon(TM) Graphics
[vo/gpu/d3d11] Device ID: 1002:1681 (rev 0a)
[vo/gpu/d3d11] Subsystem ID: 1002:1681
[vo/gpu/d3d11] LUID: 000000000000b983
[vo/gpu/d3d11] Initializing SPIR-V compiler 'shaderc'
[vo/gpu/d3d11] Using Direct3D 11.1 runtime
[vo/gpu/d3d11] Maximum Texture2D size: 16384x16384
[vo/gpu/d3d11] D3DCompiler version: 10.0.22621.2506
[vo/gpu/d3d11] Using DXGI 1.2+
[vo/gpu/d3d11] Queried output: \\.\DISPLAY1, 1920x1080 @ 8 bits, colorspace: RGB_FULL_G22_NONE_P709 (0)
[vo/gpu/d3d11] Selected swapchain format R8G8B8A8_UNORM (28), attempting to utilize it.
[vo/gpu/d3d11] Selected swapchain color space RGB_FULL_G22_NONE_P709 (0), attempting to utilize it.
[vo/gpu/d3d11] Swapchain capabilities for color space RGB_FULL_G22_NONE_P709 (0): normal: yes, overlay: no
[vo/gpu/d3d11] Swapchain successfully configured to color space RGB_FULL_G22_NONE_P709 (0)!
[vo/gpu/d3d11] Using flip-model presentation
[vo/gpu] Testing FBO format rgba16hf
[vo/gpu] Using FBO format rgba16hf.
[vo/gpu/win32] DPI detected from the new API: 96
[vo/gpu/win32] display-fps: 165.000000
[vo/gpu/win32] color-profile: C:\Windows\system32\spool\drivers\color\sRGB Color Space Profile.icm
[vo/gpu] Assuming 165.000000 FPS for display sync.
[vd] Container reported FPS: 30.000000
[vd] Codec list:
[vd] libdav1d (av1) - dav1d AV1 decoder by VideoLAN
[vd] av1 - Alliance for Open Media AV1
[vd] av1_cuvid (av1) - Nvidia CUVID AV1 decoder
[vd] av1_qsv (av1) - AV1 video (Intel Quick Sync Video acceleration)
[vd] Opening decoder libdav1d
[vd] Looking at hwdec av1-d3d11va...
[vo/gpu] Loading hwdec drivers for format: 'd3d11'
[vo/gpu] Loading hwdec driver 'd3d11-egl'
[vo/gpu] Loading failed.
[vo/gpu] Loading hwdec driver 'd3d11va'
[vd] Trying hardware decoding via av1-d3d11va.
[vd] Using underlying hw-decoder 'av1'
[vd] Selected codec: libdav1d (dav1d AV1 decoder by VideoLAN)
[vf] User filter list:
[vf] (empty)
[cplayer] Starting playback...
[vd] Pixel formats supported by decoder: dxva2_vld d3d11va_vld d3d11 cuda vulkan yuv420p
[vd] Codec profile: Main (0x0)
[vd] Requesting pixfmt 'd3d11' from decoder.
Using hardware decoding (d3d11va).
[vd] Decoder format: 1920x1080 d3d11[nv12] bt.709/bt.709/bt.1886/limited/auto CL=unknown crop=1920x1080+0+0
[vd] Using container aspect ratio.
[vf] [in] 1920x1080 d3d11[nv12] bt.709/bt.709/bt.1886/limited/display SP=1.000000 CL=mpeg2/4/h264 crop=1920x1080+0+0
[vf] [userdeint] 1920x1080 d3d11[nv12] bt.709/bt.709/bt.1886/limited/display SP=1.000000 CL=mpeg2/4/h264 crop=1920x1080+0+0
[vf] [userdeint] (disabled)
[vf] [autorotate] 1920x1080 d3d11[nv12] bt.709/bt.709/bt.1886/limited/display SP=1.000000 CL=mpeg2/4/h264 crop=1920x1080+0+0
[vf] [autorotate] (disabled)
[vf] [convert] 1920x1080 d3d11[nv12] bt.709/bt.709/bt.1886/limited/display SP=1.000000 CL=mpeg2/4/h264 crop=1920x1080+0+0
[vo/gpu] Loading hwdec drivers for format: 'd3d11'
[vo/gpu] Loading hwdec driver 'd3d11-egl'
[vo/gpu] Loading failed.
[vf] [out] 1920x1080 d3d11[nv12] bt.709/bt.709/bt.1886/limited/display SP=1.000000 CL=mpeg2/4/h264 crop=1920x1080+0+0
VO: [gpu] 1920x1080 d3d11[nv12]
[cplayer] VO: Description: Shader-based GPU Renderer
[vo/gpu] reconfig to 1920x1080 d3d11[nv12] bt.709/bt.709/bt.1886/limited/display SP=1.000000 CL=mpeg2/4/h264 crop=1920x1080+0+0
[vo/gpu/win32] reset window bounds: 0:-12:1920:1080
[vo/gpu/win32] adjusted window bounds: 72:31:1777:1000
[vo/gpu/win32] resize window: 1777:1000
[vo/gpu/win32] resize window: 1777:1000
[vo/gpu] Resize: 1920x1080
[vo/gpu] Window size: 1920x1080 (Borders: l=0 t=0 r=0 b=0)
[vo/gpu] Video source: 1920x1080 (1:1)
[vo/gpu] Video display: (0, 0) 1920x1080 -> (0, 0) 1920x1080
[vo/gpu] Video scale: 1.000000/1.000000
[vo/gpu] OSD borders: l=0 t=0 r=0 b=0
[vo/gpu] Video borders: l=0 t=0 r=0 b=0
[vo/gpu] Reported display depth: 8
[vo/gpu] Testing FBO format rgba16hf
[vo/gpu] Using FBO format rgba16hf.
[vo/gpu] Resize: 1777x1000
[vo/gpu] Window size: 1777x1000 (Borders: l=0 t=0 r=0 b=0)
[vo/gpu] Video source: 1920x1080 (1:1)
[vo/gpu] Video display: (0, 0) 1920x1080 -> (0, 0) 1777x1000
[vo/gpu] Video scale: 0.925521/0.925926
[vo/gpu] OSD borders: l=0 t=0 r=0 b=0
[vo/gpu] Video borders: l=0 t=0 r=0 b=0
[vo/gpu] Reported display depth: 8
[vo/gpu/d3d11] Using cached vertex shader
[vo/gpu/d3d11] Using cached fragment shader
[vo/gpu/d3d11] Using cached vertex shader
[vo/gpu/d3d11] Using cached fragment shader
[vo/gpu/d3d11] Using cached vertex shader
[vo/gpu/d3d11] Using cached fragment shader
[vo/gpu/d3d11] Using cached vertex shader
[vo/gpu/d3d11] Using cached fragment shader
[vo/gpu] Dither to 8.
[vo/gpu/d3d11] Using cached vertex shader
[vo/gpu/d3d11] Using cached fragment shader
[cplayer] first video frame after restart shown
[cplayer] playback restart complete @ 0.000000, audio=eof, video=playing
...
搜索到相关的信息,看样子是支持 AV1 硬解的:windows平台的解码选择
也许你可以尝试一下这个d3d11的版本 https://github.com/dragonflylee/wiliwili/suites/17842121925/artifacts/1023593944
但是这个构建不能播放
@AiraNadih
这个构建在能自动跳转软解的基础上增加了更多的log: https://github.com/xfangfang/DIY/actions/runs/6747288577
基于这个构建,有两个事是可以测试的:
"player_hwdec_custom": "d3d11va-copy"
然后查看log(你也可以指定一些其他的值来测试)。对于这个问题我这边就爱莫能助了,貌似steam deck在win下不支持硬解:“Your platform doesn't support hardware accelerated AV1 decoding.”
希望上面的两个测试,尤其是最后一个能解决在你的系统上av1硬解的问题,如果还是不行的话,我就也没别的思路了。
@AiraNadih
这个构建在能自动跳转软解的基础上增加了更多的log: https://github.com/xfangfang/DIY/actions/runs/6747288577
基于这个构建,有两个事是可以测试的:
1. 手动指定wiliwili内使用的硬解方案:确认设置中选择硬解开启,在工具里选择打开配置目录,关闭wiliwili,打开配置文件,手动给wiliwili添加一条配置:`"player_hwdec_custom": "d3d11va-copy"` 然后查看log(你也可以指定一些其他的值来测试)。 2. 替换官方最新的libmpv: 在这个页面下载官方最新的 [libmpv](https://sourceforge.net/projects/mpv-player-windows/files/libmpv/mpv-dev-x86_64-20231029-git-a57bd8e.7z/download) 替换wiliwili.exe同目录下的libmpv,然后查看log。
对于这个问题我这边就爱莫能助了,貌似steam deck在win下不支持硬解:“Your platform doesn't support hardware accelerated AV1 decoding.”
希望上面的两个测试,尤其是最后一个能解决在你的系统上av1硬解的问题,如果还是不行的话,我就也没别的思路了。
确实,经过测试,后者的方案能够使用 AV1 硬解,而且必须配置 "player_hwdec_custom": "d3d11va-copy"
。
至于前者就不可行了。
第二个办法有用或许可能和处理器比较新有关系,我看到那个库mpv和ffmpeg都是几乎是master分支最新的代码编译出来的。
wiliwili 内置的硬解参数是 auto-safe,这个具体怎么选择就是mpv来处理的了,或许 auto-copy 也能用。
第二个办法有用或许可能和处理器比较新有关系,我看到那个库mpv和ffmpeg都是几乎是master分支最新的代码编译出来的。
wiliwili 内置的硬解参数是 auto-safe,这个具体怎么选择就是mpv来处理的了,或许 auto-copy 也能用。
使用第二个方案,配置 player_hwdec_custom
的值为 auto-copy
实际效果和 d3d11va-copy
一样,只是多了几次尝试:
...
[vd] Opening decoder libdav1d
+ [vd] Looking at hwdec av1-d3d11va...
+ [vd] Not using this for auto-copy.
+ [vd] Looking at hwdec av1-dxva2...
+ [vd] Not using this for auto-copy.
+ [vd] Looking at hwdec av1-nvdec...
+ [vd] Not using this for auto-copy.
[vd] Looking at hwdec av1-d3d11va-copy...
[vd] Trying hardware decoding via av1-d3d11va-copy.
[vd] Using underlying hw-decoder 'av1'
[vd] Selected codec: dav1d AV1 decoder by VideoLAN
...
上述的第二个方案,我又显式配置了 "player_hwdec_custom": "auto-safe"
,然后和之前 auto-copy
的值又有所不同,但是也能启用硬解:
...
[vd] Opening decoder libdav1d
[vd] Looking at hwdec av1-d3d11va...
- [vd] Not using this for auto-copy.
- [vd] Looking at hwdec av1-dxva2...
- [vd] Not using this for auto-copy.
+ [vd] Could not create device.
[vd] Looking at hwdec av1-nvdec...
- [vd] Not using this for auto-copy.
+ [vd] Could not create device.
[vd] Looking at hwdec av1-d3d11va-copy...
[vd] Trying hardware decoding via av1-d3d11va-copy.
[vd] Using underlying hw-decoder 'av1'
[vd] Selected codec: dav1d AV1 decoder by VideoLAN
...
那么关键就在于 libmpv 了。只需要替换这个部分,其他并没有问题。
那么按理来说不配置 player_hwdec_custom 应该也是可行的,毕竟默认就是 auto-safe。
应该会有一条 log:MPV hardware decode: ***,不配置 player_hwdec_custom 和 "player_hwdec_custom": "auto-safe" 效果都应该是:MPV hardware decode: auto-safe
那么按理来说不配置 player_hwdec_custom 应该也是可行的,毕竟默认就是 auto-safe。
应该会有一条 log:MPV hardware decode: ***,不配置 player_hwdec_custom 和 "player_hwdec_custom": "auto-safe" 效果都应该是:
MPV hardware decode: auto-safe
是的。所以要解决这个问题,只需要替换 libmpv 。
官方的 mpv 太大了 dragonflylee 精简之后是原先的 1/4大小,对于绝大多数人来说都应该可以满足的,或许等到下一次 mpv 或 ffmpeg 出新的release之后,重新精简编译一下问题就解决了。 目前看的话 dragonflylee 精简过的还是很好的,虽然不知道原因,但是至少设置了硬解之后如果没成功开启硬解,就不播放。也算是一个提醒了。 所以现在用的 libmpv 可能还是要保留一段时间,感谢详细又及时地问题反馈。
说起来我有个疑问:
为什么 libmpv 的源码 的最近一次提交记录是 3 周前,但是 sourceforge
上给出的构建最近一次发布日期是前几天?
可能有两个原因:
可能有两个原因:
1. 你发的这个提交记录只是libmpv的头文件,具体的实现散布在mpv的其他位置。 2. mpv的某个依赖更新了,所以他们重新发了新的版本。
通过那个最新的构建的文件名里的 git commit hash 我找到原因了:https://github.com/mpv-player/mpv/commit/a57bd8e 原来是修改了构建系统的配置。
他们这个应该是一周更新一次测试版:https://sourceforge.net/projects/mpv-player-windows/files/libmpv/
如果非要说正式版,可能需要找到 mpv 0.36.0 发布那天附近的构建版了。
@AiraNadih 使用 ffmpeg 的 release/6.1 分支编译的 libmpv-2.dll,应该能解决AV1的解码问题
@AiraNadih 使用 ffmpeg 的 release/6.1 分支编译的 libmpv-2.dll,应该能解决AV1的解码问题
试了下,确实解决了。
但是,你不是想要精简这个 dll 吗?
这个已经是精简后的dll了,只有官方不到一半的大小。
PS: 问一下新版本的硬解有没有成功开启 (hardware decode 是不是 d3d11va )?
这个已经是精简后的dll了,只有官方不到一半的大小。
PS: 问一下新版本的硬解有没有成功开启 (hardware decode 是不是 d3d11va )?
成功开启了,我通过 F1 确认过了。
我在steam deck上也测试了一下,现在调用硬解失败的时候可以自动跳转到软解了,感谢 dragonflylee 重新编译的 mpv
https://github.com/xfangfang/wiliwili/actions/runs/6772605066
如果没有什么别的问题,我就关闭这个issue啦
我在steam deck上也测试了一下,现在调用硬解失败的时候可以自动跳转到软解了,感谢 dragonflylee 重新编译的 mpv
https://github.com/xfangfang/wiliwili/actions/runs/6772605066
如果没有什么别的问题,我就关闭这个issue啦
OK
之前用着都还好好的,更新后大部分视频无法加载:
网络诊断也没问题:
也尝试过换画质,一样加载不出来。 但是在浏览器里能正常加载,应该不是网络问题。