找回密码
 立即注册
搜索
查看: 4554|回复: 19

[其他] 话说b站看视频怎么调用 hevc 解码?

[复制链接]
     
发表于 2024-7-19 23:22 | 显示全部楼层 |阅读模式
本帖最后由 BRS5672023 于 2024-10-27 11:56 编辑

发现在 Linux (chromium) 和 windows (edge) 上都无法使用 hev1 解码。。但是直播的话 hvc1 解码又都是正常的。。win 上的视频会默认使用 av1 解码,如果我选 hevc 优先的话就会回退到 avc 。。而 linux 上连 av1 解码也用不了(firefox 可以调用 av1 解码)。。其他网站上基本都是正常的,但是我注意到看抖抖的直播调用 hevc 解码的时候 info 有这样的内容
  1. "Cannot select DecryptingVideoDecoder for video decoding"
复制代码
另外 HEVC Video Test 这个网站也无法正常使用 hevc 解码(手机上是能看的。。)



没想到 ungoogled-chromium 就能成功调用b站的 hevc 硬解了。。所以目前 Linux 上的 chromium 系的浏览器的(仅限)b站视频的硬解情况如下:
  • chromium,google-chrome,以及 thorium 这一类,只能调用 avc 的硬解
  • ungoogled-chromium,能正常调用 av1 和 hevc 的硬解(可能是包含了某个能起作用的 patch)

另外比较异常的一点是,chromium 在我删除 .config/chromium 这个目录手动重置的情况下能在第一次打开b站视频的时候调用 av1 解码。。(也包括 google-chrome 和 thorium 这些浏览器的行为也是一致的,先前还以为 google-chrome 能正常调用b站视频的 av1 解码,没想到只要刷新一下就会 fallback 到 avc 解码了,而且这个过程还是不可逆的)

另外值得一说的是,vulkan wayland 相关的 patch 都已经包含在 130 开始的各版本中了,以及输入法相关的 text-input-v3 也能用了(但是比起 text-input-v1 还是有很多问题,另外 electron 的 text-input-v3 支持还没有实现);在看了 github 上 nvidia-vaapi-driver 里的用户反馈之后,我个人感觉现在 Linux 浏览器的硬解上支持最差的可能是 amdgpu 了。。比如 hevc main 10 相关的 patch 早就 merge 了,然而 amdgpu 只能看到黑屏(在 issues.chromium.org 上看到的开发人员是用 intel gpu 测试相关的 patch 的,我默认 intel gpu 上的 hevc main 10 解码已经没问题了),虽然n卡的 hevc main 10 解码目前还有问题(应该是有掉帧的问题),但至少不会显示成黑屏;n卡也似乎不能使用 vulkan wayland,但我觉得这实在不是什么问题,amdgpu 倒是只能在 vulkan wayland 的情况下做到硬解。。关于 intel 和 nvidia gpu 在b站上的 hevc/av1 解码情况还没有看到有反馈的。。



更新一下,对比 google-chrome-stable 和 ungoogled-chromium 在打开b站视频时的 log,发现前者有
  1. [30498:30523:1027/112549.868814:ERROR:socket_manager.cc(147)] Failed to resolve address for hw-v2-web-player-tracker.biliapi.net., errorcode: -105
  2. [30498:30523:1027/112549.868849:ERROR:socket_manager.cc(147)] Failed to resolve address for hw-v2-web-player-tracker.biliapi.net., errorcode: -105
  3. [30498:30523:1027/112549.868863:ERROR:socket_manager.cc(147)] Failed to resolve address for hw-v2-web-player-tracker.biliapi.net., errorcode: -105
  4. [30498:30523:1027/112549.868874:ERROR:socket_manager.cc(147)] Failed to resolve address for hw-v2-web-player-tracker.biliapi.net., errorcode: -105
  5. [30498:30523:1027/112549.868886:ERROR:socket_manager.cc(147)] Failed to resolve address for hw-v2-web-player-tracker.biliapi.net., errorcode: -105
  6. [30498:30523:1027/112549.868901:ERROR:socket_manager.cc(147)] Failed to resolve address for hw-v2-web-player-tracker.biliapi.net., errorcode: -105
复制代码

这样的错误信息;对比后者,虽然能成功使用 hevc 解码,但也包含前者没有的 ffmpeg 相关的一行错误信息(这一行错误信息在其他网站的 hevc 解码上又不会出现。。)

  1. [35258:54:1027/113347.152283:ERROR:ffmpeg_common.cc(970)] Unsupported pixel format: -1
复制代码


回复

使用道具 举报

     
发表于 2024-7-20 01:31 | 显示全部楼层
装b站pc客户端,选hevc优先。

(刚想截个图证明发现看了好几个视频都是avc1了,今天抽风?)
回复

使用道具 举报

     
 楼主| 发表于 2024-7-20 01:57 | 显示全部楼层
呼和浩特 发表于 2024-7-20 01:31
装b站pc客户端,选hevc优先。

(刚想截个图证明发现看了好几个视频都是avc1了,今天抽风?) ...

客户端不是 electron 吗?解码上还有区别吗(uwp 版的倒是很早就可以 hevc 解码了,不知道现在还能不能用)?另外我一般用 Linux,windows 是放在移动硬盘上的 wtg,实在没有很多能用客户端的场景。。
回复

使用道具 举报

     
发表于 2024-7-20 02:10 | 显示全部楼层
BRS5672023 发表于 2024-7-20 01:57
客户端不是 electron 吗?解码上还有区别吗(uwp 版的倒是很早就可以 hevc 解码了,不知道现在还能不能用 ...

QQ截图20240720020627.jpg

QQ截图20240720020942.jpg

重启了下又好了
回复

使用道具 举报

     
 楼主| 发表于 2024-7-20 03:36 | 显示全部楼层

看来可能是 edge 的问题,chrome 选 hevc 优先就没问题。。(另外我发的那个 HEVC Video Test 只在 chromium on linux 上的解码有问题)
回复

使用道具 举报

     
 楼主| 发表于 2024-7-20 03:58 | 显示全部楼层
本帖最后由 BRS5672023 于 2024-7-20 04:43 编辑

Linux 上硬解的问题可能是不支持 hevc main 10 的 profile,能正常使用的情况的 profile 我看都是 hevc main

10-bit Video Decoding Not Supported by Chromium's Linux VA-API Decoder

结论似乎下得有点早了。。贴一下 chrome 里的 media-internals 的相关信息
  1. "Selected D3D11VideoDecoder for video decoding, config: codec: hevc, profile: hevc main, level: not available, alpha_mode: is_opaque, coded size: [3840,2160], visible rect: [0,0,3840,2160], natural size: [3840,2160], has extra data: false, encryption scheme: Unencrypted, rotation: 0°, flipped: 0, color space: {primaries:BT709, transfer:BT709, matrix:BT709, range:LIMITED}"
复制代码
回复

使用道具 举报

     
发表于 2024-7-20 09:01 | 显示全部楼层
edge的问题吧,chrome早实现绕过hevc插件解码的机制了

论坛助手,iPhone
回复

使用道具 举报

发表于 2024-7-20 13:10 | 显示全部楼层
本帖最后由 chust 于 2024-7-21 15:19 编辑

试试这个修改版,打好了各种视频解码补丁

https://github.com/Alex313031/thorium

图片.png
回复

使用道具 举报

     
发表于 2024-7-20 13:48 | 显示全部楼层
话说现在b站app哪个版本最好用啊,还在用5.58最后带左屏风页的版本,虽然现在能登入没问题,但是发现有些视频和评论看不了了…
b.png



回复

使用道具 举报

     
发表于 2024-7-20 22:39 来自手机 | 显示全部楼层
不知道是不是错觉AVC反而画质更好
其他的有一种二压再二压的感觉
回复

使用道具 举报

     
发表于 2024-7-20 22:51 | 显示全部楼层
本帖最后由 Midnight.Coup 于 2024-7-20 22:55 编辑

Linux 下就别折腾 HEVC 了直接 AV1,什么发行版以及哪个 Chromium 内核浏览器,ffmpeg-free-world 装了吗
Windows  Edge 调用的是商店里的 HEVC 插件,去 store.rg-adguard.net 下一个
直播 HVC1 解码正常.....先清理 Cookie 试试
回复

使用道具 举报

     
 楼主| 发表于 2024-7-21 04:46 | 显示全部楼层
本帖最后由 BRS5672023 于 2024-7-21 04:49 编辑
Midnight.Coup 发表于 2024-7-20 22:51
Linux 下就别折腾 HEVC 了直接 AV1,什么发行版以及哪个 Chromium 内核浏览器,ffmpeg-free-world 装了吗
W ...

考虑 hevc 解码的原因就是直播流在某些情况下是默认 hevc 编码的(av1 编码的情况我似乎还没见过),而且目前真正有问题的地方就是b站的视频解码。。比较奇怪的一点是b站在 av1 格式优先的设置下仍然会 fallback 到 avc1(其实应该默认就已经是 av1 优先了),而且这个问题只在 chromium 上出现(也只在b站的视频上出现),chrome 上居然就没有b站 av1 解码的问题了。。我用的是 arch

win 上我一直用的收费版的 hevc 插件,自带的免费版插件删掉了。。而且 hevc 解码的问题也只在b站的视频解码上出现。。

回复

使用道具 举报

     
发表于 2024-7-21 12:55 | 显示全部楼层
我试了下,win上edge里b站直播可以正常调用hevc,但是视频不行,然后大部分b站视频调用hevc的攻略都说要改ua

—— 来自 S1Fun
回复

使用道具 举报

     
 楼主| 发表于 2024-7-21 18:53 | 显示全部楼层
本帖最后由 BRS5672023 于 2024-7-21 18:54 编辑
非建政专用号 发表于 2024-7-21 12:55
我试了下,win上edge里b站直播可以正常调用hevc,但是视频不行,然后大部分b站视频调用hevc的攻略都说要改u ...

改 ua 的方法我试过了,也不行。。不过在 chrome 还不支持 hevc 解码的时候就有改 ua 的教程了,我记得那个时候还是有用的。。
回复

使用道具 举报

     
发表于 2024-7-21 22:01 | 显示全部楼层
本帖最后由 Midnight.Coup 于 2024-7-21 22:03 编辑
BRS5672023 发表于 2024-7-21 04:46
考虑 hevc 解码的原因就是直播流在某些情况下是默认 hevc 编码的(av1 编码的情况我似乎还没见过),而且 ...

核显还是独显在解码,型号是啥,说不定av1还是软解
win:edge;直播hvc1流可硬解;视频hevc无效,av1有效
archlinux:纯chromium?还是其他修改版?  直播hvc1流可以硬解;视频av1/hevc均不支持
edge之前hevc和av1我记得坏过一次,127之前来,怕不是现在又坏了感觉是B站的玄学问题,试试 Firefox 看 hevc 视频,和 edge 同一种方案

顺便可以试试帖子里的一些测试工具 https://bbs.saraba1st.com/2b/thread-2164967-1-1.html
回复

使用道具 举报

     
发表于 2024-7-21 22:13 来自手机 | 显示全部楼层
本帖最后由 kivz 于 2024-7-21 22:17 编辑
BRS5672023 发表于 2024-7-21 18:53
改 ua 的方法我试过了,也不行。。不过在 chrome 还不支持 hevc 解码的时候就有改 ua 的教程了,我记得那 ...

改UA至今有效
不过那个插件不知道什么问题,新的UA刷新一下就没了,得手快复制

顺便有没有办法只把弹幕锁60的,天热这GPU压力全来自高刷弹幕
回复

使用道具 举报

     
 楼主| 发表于 2024-7-21 22:37 | 显示全部楼层
本帖最后由 BRS5672023 于 2024-7-21 23:06 编辑
Midnight.Coup 发表于 2024-7-21 22:01
核显还是独显在解码,型号是啥,说不定av1还是软解
win:edge;直播hvc1流可硬解;视频hevc无效,av1有效 ...

Linux 上用的就是 chromium,不过目前 arch 的 chromium 有包含 vulkan wayland 的 fix(这个应该不影响解码的情况,总之 wayland 和 xwayland 的解码情况也是一致的,gpu 是 radeon 780m),hevc main profile 的视频也是可以正常硬解的,比如 Big_Buck_Bunny_1080_10s_1MB.mp4,并且我在 windows 的 chrome 上看到的b站 hev1 编码的视频 profile 也同样是 hevc main 而不是主楼的 hevc main 10 。。。至于 chromium on linux 无法使用b站视频的 av1 解码我就完全摸不着头脑了,毕竟 chrome on linux 就没问题(改 ua 也是无效的)。。

edge 的 hevc 解码在其他网站上没有问题(比如首楼的 HEVC Video Test)。。可能是b站有浏览器 ua 的限制?
回复

使用道具 举报

     
 楼主| 发表于 2024-7-21 22:58 | 显示全部楼层
kivz 发表于 2024-7-21 22:13
改UA至今有效
不过那个插件不知道什么问题,新的UA刷新一下就没了,得手快复制

重新试了一下,好像是 User-Agent Switcher and Manager 这个扩展的白名单模式有问题,确实改 ua 还是有效的。。
回复

使用道具 举报

     
发表于 2024-7-22 22:39 | 显示全部楼层
zmw_831110 发表于 2024-7-20 22:39
不知道是不是错觉AVC反而画质更好
其他的有一种二压再二压的感觉

不是错觉 叔叔推hevc和av1都是在压缩宝贵的带宽成本
回复

使用道具 举报

     
 楼主| 发表于 2024-7-30 11:57 | 显示全部楼层
本帖最后由 BRS5672023 于 2024-10-27 11:54 编辑

之前更新的信息已经重新包含在了主楼里了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2024-11-26 15:38 , Processed in 0.042583 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表