[硬件产品讨论] 还有很多人不知道AMF编码质量已经提升并且支持B帧了吗?

yung tungsten-avatar

yung tungsten

2022-08-14T19:26:38+00:00

先上结果:
来源 Youtube专业编码测试博主EposVox
[url]https://www.youtube.com/watch?v=ctbTTRoqZsM[/url]
因为部分游戏的部分场景稍有差异,这里给出大多数游戏的成绩
主流8M码率下 CPU x264 very slow 约等于 Intel DG2 av1 >Intel quick sync H264> Nvidia NVENC H264 约等于AMD AMF H264
6M码率 CPU x264 very slow 互有胜负 Intel DG2 av1 > Nvidia NVENC H264 > Intel quick sync H264 > AMD AMF H264
3.5M码率因为太低,视频里的几家编码数据都有高有低不好排名,不推荐使用该码率,如果不得已使用该码率推荐x264 very slow。
主流8000码率加上直播平台基本只支持H264 AVC,所以首选还是Intel核显编码

为什么AMF编码画质突然和NVENC编码画质半斤八两了呢?因为AMD最新驱动和开发框架AMF1.4.24给AVC编码添加了B帧支持,也就是RTX20系和1650s以上显卡N卡加入B帧支持一样,OBS28也添加了支持(AMD终于开始重视编码了)
[url]https://github.com/GPUOpen-LibrariesAndSDKs/AMF/releases[/url]
·New AMD Direct Capture component and updated DVR sample app
·New HQ Scaler ( Bilinear / Bicubic / FSR )
·Vulkan support for PreAnalysis component
·Vulkan support for HEVC Encoder ( Navi+ )
·Support for temporal layer query for AVC and HEVC Encoder
·Support for consecutive B-frames and adaptive miniGOP for AVC Encoder
·Improved H264 Encoding on Vulkan ( both Windows & Linux Navi+ )
·New perceptual (PAQ) and temporal (TAQ) adaptive quantization modes for PreAnalysis
·New high motion quality boost mode for PreAnalysis
·New sharpness option for HQScaler
·New low latency decoding option
·New temporal SVC encoding options

那么B帧设置多少画质最好呢?这里直接给出Youtube专业编码测试博主EposVox的结果:
[img]https://img.nga.178.com/attachments/mon_202208/19/9aQ2q-j8bxZ1hT3cS1i6-vk.png.medium.jpg[/img]

另外用A卡直播的小伙伴可以参考EposVox给出的AMF OBS28下(该版本添加了对AMF最新选项支持)参数优化教程:
原链接:[url]https://www.youtube.com/watch?v=DXL8_Adbob4[/url]
[color=red]OBS28刚刚从BETA阶段转到预发布Pre-release阶段需要去Github下载
:[url]https://github.com/obsproject/obs-studio/releases[/url]
RX5000和更老的显卡推荐设置:
[img]https://img.nga.178.com/attachments/mon_202208/19/9aQ2q-g96kZsT3cS1ia-t1.png.medium.jpg[/img]

RX6000和RX600M核显推荐设置:
[img]https://img.nga.178.com/attachments/mon_202208/19/9aQ2q-22bzZzT3cS1i6-x9.png.medium.jpg[/img]
对编码有兴趣的可以关注该博主,干货满满。[/color]
Blackish Hammer-avatar

Blackish Hammer

还是不太懂,能否详细具体说说:
1.锐龙R3 2200G带的 Radeon Vega 8,AMF编码质量已经提升并且支持B帧了吗?
2.如何证明本机已经支持B帧了?
3.AMD最新驱动和开发框架AMF1.4.24给AVC编码添加了B帧支持,具体需要更新什么驱动?
ProHooker-avatar

ProHooker

数据还行, 但是结论错了, 首选永远是用打游戏的显卡编码, 避免PCIe开销.
OBS的渲染合成只能在游戏捕获的显卡上进行, 所以合成的结果在跑游戏的这个显卡的显存里, 在这0copy编码效率是最高的, 对游戏的影响最小.

另外就是6M就已经看出来, AMF H264的质量在B帧加入之后依然有差距.
再另外就是现在一些平台可以使用h265进行编码, 让h264进入历史的垃圾堆里. 随着av1的普及, 未来h264的需求会非常小.
Irelia-avatar

Irelia

我个人来说,除非直播推流,否则我绝不使用CBR编码
使用VBR的话,AMF有体积失控的问题

而且说句跑题的话,直到RDNA3为止,AMD独立显卡的解码能力都是羸弱得无以复加,6900XT在播放4K60p的HDR内容时已经会解码器过载

而且现在H264的存在意义已经仅限于作为兼容性最佳的流媒体格式,在这个时候才加入B帧支持属实太晚了
而且AMF至今未支持H265的B帧,隔壁NVENC8已经支持AV1的B帧了

我是一个有强大粘性的AMD用户,但是尽管如此我也为了NVENC特地去买了张4060(一边用一边骂)
Blackish Hammer-avatar

Blackish Hammer

[quote][pid=720924748,33132410,1]Reply[/pid] Post by [uid=64331711]SUPERODD[/uid] (2023-10-14 05:11):

我个人来说,除非直播推流,否则我绝不使用CBR编码
使用VBR的话,AMF有体积失控的问题

而且说句跑题的话,直到RDNA3为止,AMD独立显卡的解码能力都是羸弱得无以复加,6900XT在播放4K60p的HDR内容时已经会解码器过载

而且现在H264的存在意义已经仅限于作为兼容性最佳的流媒体格式,在这个时候才加入B帧支持属实太晚了
而且AMF至今未支持H265的B帧,隔壁NVENC8已经支持AV1的B帧了
x
我是一个有强大粘性的AMD用户,但是尽管如此我也为了NVENC特地去买了张4060([/quote]1.obs直播推流无法使用硬解H265,为何?
2.如果直播推流或者录屏的内容只是一些吃播,讲课,肥皂剧电影讲解,并不是激烈的动作片,极品飞车之类的游戏运动场景,是否B帧插值的这个功能对于直播推流或者录屏的画质的影响就很小?
3.有人说直播推流,录屏可以使用多核多线程的无核显aU带N卡,全程使用软解x264,画质极好,速度也不错;有的人说应该使用带核显的iU加n卡,iU的核显硬编,配合n卡硬解,速度极快,画质也不错;不知哪一方选择更好?
Irelia-avatar

Irelia

[quote][pid=721139287,33132410,1]Reply[/pid] Post by [uid=37897772]云林寺方丈[/uid] (2023-10-15 14:12):

1.obs直播推流无法使用硬解H265,为何?
2.如果直播推流或者录屏的内容只是一些吃播,讲课,肥皂剧电影讲解,并不是激烈的动作片,极品飞车之类的游戏运动场景,是否B帧插值的这个功能对于直播推流或者录屏的画质的影响就很小?
3.有人说直播推流,录屏可以使用多核多线程的无核显aU带N卡,全程使用软解x264,画质极好,速度也不错;有的人说应该使用带核显的iU加n卡,iU的核显硬编,配合n卡硬解,速度极快,画质也不错;不知哪一方选择更好?[/quote]1. 请你先搞清楚[编码encode]和[解码decode]的概念再来问,是硬编还是硬解。obs本质上是一个基于ffmpeg的编码工具。先问是不是,再问为什么,油管和Vimeo都支持H265,B站部分支持但兼容性不佳,Twitch和国内的虎牙斗鱼都不支持。不是所有直播网站都支持H265推流,因为对网站服务器来说转码压力大,而且终端观众的浏览器不一定能解析H265。
2. 这是一个很主观的问题,有的人认为很小有的人认为天差地别。我的经验是只要参数设置合理,码率给得足够高,即使是无B帧画质也不会太差。
3. 我再说一次,先搞懂什么是编码什么是解码再来提问。libx264对大部分CPU来说是拖累性能的,影响游戏表现,完全得不偿失,除非你将ffmpeg进程绑定给Intel的几个E核,让P核不参与编码,这样损失会相对少;用核显编码理论上不是坏主意,我也一直在这么做,但是我不推荐任何人模仿,因为核显编码会增加CPU、内存控制器负担,而且不是所有人都能搞定内存性能和进程隔离。像你这样能问出这样问题的人,最好的办法就是老老实实用没有核显的CPU,或者是zen4的话就屏蔽掉核显,老老实实买张N卡来编码。一个GPU就够,不要搞太多花里胡哨的,你伺候不了。

我甚至都不知道你说的解是解什么东西,你是要直播放视频吗?一边解码视频一边编码推流?如果你想说的是用NV独显来跑游戏/拖显示器的话,那跟解码没有半毛钱关系。
Badonlkadonk-avatar

Badonlkadonk

[quote][pid=721139287,33132410,1]Reply[/pid] Post by [uid=37897772]云林寺方丈[/uid] (2023-10-15 14:12):

1.obs直播推流无法使用硬解H265,为何?
2.如果直播推流或者录屏的内容只是一些吃播,讲课,肥皂剧电影讲解,并不是激烈的动作片,极品飞车之类的游戏运动场景,是否B帧插值的这个功能对于直播推流或者录屏的画质的影响就很小?
3.有人说直播推流,录屏可以使用多核多线程的无核显aU带N卡,全程使用软解x264,画质极好,速度也不错;有的人说应该使用带核显的iU加n卡,iU的核显硬编,配合n卡硬解,速度极快,画质也不错;不知哪一方选择更好?[/quote]大主播带宽足,可以考虑硬件编码

小主播带宽少,应该用CPU软编码以节省带宽
bill_nye_the_russian_spy-avatar

bill_nye_the_russian_spy

Reply to [pid=720924748,33132410,1]Reply[/pid] Post by [uid=64331711]SUPERODD[/uid] (2023-10-14 05:11)
VBR激烈场景自动增加码率需要二次编码和延迟来支持 在直播中不太适用 所以把VBR的最大码率和平均码率设成一样禁掉这个特性后 就相当于支持闲时自动降码率的CBR
Irelia-avatar

Irelia

[quote][pid=721145828,33132410,1]Reply[/pid] Post by [uid=62165221]我要开小号A[/uid] (2023-10-15 15:02):

大主播带宽足,可以考虑硬件编码

小主播带宽少,应该用CPU软编码以节省带宽[/quote]不要扯淡,不懂可不可以不要充内行乱说话
码率高低是你自己设置的,如果你是只会用平台给的傻瓜直播客户端的话那还是麻烦一边儿歇着去
而且码率高低还看编码格式,5000kbps的AV1和5000kbps的H264怎么比,你标准都不固定比较个毛线
还带宽,你真的自己知道你说的带宽是啥吗?内存带宽?显存带宽?网络带宽?
Irelia-avatar

Irelia

[quote][pid=721150282,33132410,1]Reply[/pid] Post by [uid=1698382]死寂天空[/uid] (2023-10-15 15:36):

VBR激烈场景自动增加码率需要二次编码和延迟来支持 在直播中不太适用 所以把VBR的最大码率和平均码率设成一样禁掉这个特性后 就相当于支持闲时自动降码率的CBR[/quote]2pass直接不考虑的,除非是专门推流机器插了采集卡的,否则延迟完全无法接受
我比较过VBR约束码率和CBR约束QP的,我相较之下觉得后者的负载更稳定,但是自己摸到特定码率对应的QP区间得花不少时间。后来我就干脆给个很高QP用CQP/CRF摆烂了
JayBoCC2-avatar

JayBoCC2

讲真的,你用过Intel核显编码推流吗?1080p 60帧的,别说8000码率了,哪怕9000码率,画面一动起来,就一堆马赛克,和N卡的NVENC毫无可比性。