level 9
引入:
众所周知,AMD在Trinity APU中首次引入了VCE硬件视频编码器,支持h264最大1080p的硬件编码。但是,Trinity和Richland APU搭载的Terascale架构核显导致驱动早早停更,AMD的视频编码API: AMF版本过低,几乎无法在网上找到能调用他们的硬件编码器的软件。同时,不难发现几乎所有浏览器都不会调用他们的硬解单元。
2025年01月11日 12点01分
2
确实,依楼主所说,本人在使用A6 5400K时开Chrome看Bilibili强制锁FHD H264(先前已确定DXVAChecker中H264可解FHD),再将处理器降到1.4Ghz,视频会卡住不动
2025年01月11日 14点01分
level 9
首先是最简单的解码,本地播放器可以确定VLC是可以硬解的,但是浏览器全都因为AMD旧驱动的小问题把Terascale GPU列入了黑名单,解决方法很简单,对于Chromium浏览器,在flags选项里面开启#ignore-gpu-blocklist即可。
2025年01月11日 12点01分
3
level 9
其次是编码,我能想到的两个最常用的硬件编码应用场景就是视频重新编码和录制了。这里不得不提到AMD支持的两种视频编码API: MediaFoundation(后文称MF)和AMF。前者是微软提供的通用API,相当于给AMF包装了一下供软件使用,而AMF就是AMD自家的API了,前者延续了微软向下兼容性好的老传统,不管驱动版本多旧用起来都一样,就是没啥软件支持,而且据说有bug,不支持固定码率,只能可变码率。
对于视频录制,OBS搭配特定编码插件可以解决,AMF插件很幸运的有一个旧版本(1.2.0RC1)可用,而MF插件无论什么版本都可以,但是很不幸OBS已经移除了这个插件并且在移除前很长一段时间里把这个插件标记为弃用,导致无法通过正常途径选择,我逆向了最后一个插件版本,去掉了弃用标志,得到了一个正常使用的版本。值得一提,这些旧OBS插件截止到今天还可以和最新版OBS一起工作,但是他们依赖很多旧版VC运行库,所以要保证VC运行库齐全
2025年01月11日 12点01分
4
level 9
对于视频重编码,软件有很多,但是要求兼容Trinity Richland又要新就没几个了。那些古董商业软件就不考虑了,现在的免费软件几乎清一色基于ffmpeg,很不幸ffmpeg任何版本都不支持如此旧的AMF版本,但是好在MF还是支持的,但是又很不幸,ffmpeg图形化前端支持MF编码器的没几个,其中有一个格式工厂,但是我相信没人会想用这玩意,另一个就是HandBrake了。但是又不幸,HandBrake的MF编码器支持是给Windows ARM64做的,AMD64的构建直接禁用掉了,于是我只能克隆HandBrake源码,强制开启MF重新编译hb.dll,这才终于实现了在视频重编码软件里使用硬件加速。
2025年01月11日 12点01分
5
level 9
总结:
想在Chromium内核浏览器用硬件解码,开启#ignore-gpu-blocklist
想在OBS上硬件编码,安装下面链接给的两个插件 (把压缩包内容解压到安装目录覆盖即可) 并保证VC运行库齐全
想在HandBrake上硬件编码,安装我提供的hb.dll版本的HandBrake,然后把安装目录里hb.dll用我提供的替换掉
2025年01月11日 12点01分
6
请教一下楼主,在客户端b站用hd6570显卡几乎没占用不解码,全让我那双核跑看视频卡卡的,有没有什么方法能让客户端b站调用视频解码啊(win7系统)
2025年03月01日 01点03分