基础参数
在使用N卡进行硬编码时,需要调整参数才能调整导出视频的码率相关设置
使用参数 -b:v 10M 即为锁定目标码率,该方式不适合画面剧烈波动的情况,可能导致不同画面体验不一致
使用参数 qp 即可使用CQP,使用cq参数即可使用CRF(注意这里不支持-crf,那个是CPU编码时才有部门情况下可以用)
关于CQP和CRF,可以参考 https://blog.csdn.net/HTT_97/article/details/116694867
简单来说,CRF可综合调整使得最后的视频质量是恒定的,也就是一致的,CRF可以提供跟QP一样的视觉质量,但是文件更小,CRF是通过降低那些人眼无法察觉到的帧的质量来达到此目的的。正常的取值范围不可为0也不可高于51。
QP是量化参数,用于控制每帧视频中每一个宏块的压缩量。实际上,QP 反映了空间细节压缩情况。QP 越小,就会保留越多的细节信息。
实战测试
我是用了3个视频片段进行测试,一个是OBS录制的4K60视频(57M比特率,av1),一个是使用XBOX Game Bar在2k屏幕录制的1080p60fps视频(34M比特率,h264),均为游戏视频,还有一个是通过Anime4KCPPGUI将一个不足1M码率的720P视频调整为1080P30FPS的视频(码率12M,h264)
分别对比如下
可以看到,AVC转码AV1、HEVC时,可能是AV1优化不到位还是什么的问题,实际上压缩效果还不一定谁好。
qp的波动极大,再加上取值范围很大,尤其是av1我试到170了。所以再加上动态调整效果不如crf模式合理,所以还是建议所以crf模式。
cq在20以内时,码率变化极少
各网站推荐码率
常见流媒体和视频网站
部分多取值范围的我取中值,注意这里是比特率,1字节=8比特,默认都是H264/AVC编码
哔哩哔哩官方推荐(视频上传)
https://member.bilibili.com/platform/upload/video/frame
1080P 6M、4K 20M
Youtube官方推荐(视频上传)
https://support.google.com/youtube/answer/1722171
1080P30FPS 8M、1080P60FPS 12M、4K30FPS 40M、4K60FPS 60M
Youtube官方推荐(直播流)
https://support.google.com/youtube/answer/2853702
1080P30FPS 4.5M、1080P60FPS 6.8M、4K30FPS 24M、4K60FPS 35M
Youtube官方推荐(视频在线播放)
https://support.google.com/youtube/answer/78358
1080P 5M、4K 20M
Twitch官方推荐(直播流)
https://stream.twitch.tv/encoding/
1080P30FPS 4.5M、1080P60FPS 6M
Netflix官方推荐(视频在线播放)
https://help.netflix.com/en/node/306
1080P 5M、4K 15M
其他厂商
IBM官方推荐(云转码流)
https://support.video.ibm.com/hc/en-us/articles/207852117
1080P 6M、4K 11M
NVIDIA官网教程
https://www.nvidia.com/en-us/geforce/guides/broadcasting-guide/
1080P 9M、4K 30M。另外在HEVC录制时提到,推荐CQ15,推荐码率40M,推荐最大码率60M
华为云官网教程(直播流)
https://support.huaweicloud.com/live_faq/live_08_0051.html
H264下 1080P 2M、4K 8M
H265下 1080P 1.4M、4K 5.6M
小结
大多数平台4K压制到20-30M,1080P压制到6M,H264.AVC即可。如果是Youtube可加倍。如果考虑到压缩比的话,请看下文。
实验对比分析
以4K20-30M、1080P6M为例。注意,实验样本有限,仅供参考,请以实际情况为准。
4K60视频测试
CQ30差不多就是这个水平(27M),对照CQ30到HEVC是22M、AV1是28M,感觉在CQ30左右时AV1转出的不同格式视频并没有明显差距。
不过在AV1的视频用CQ1转AVC、AV1、HEVC时发现,同CQ下AV1日常打不过HEVC(码率),AV1对比AVC的压制比率高达35%,但是随着视频质量的下降(CQ增加),AV1优势慢慢减弱。
当然,CQ一致不代表真实体验就是一个样子的。在视频网站推荐的码率时,三个编码差距不大,但是质量越高,AVC劣势越明显。
1080P60视频测试
大概CQ33即可达到6M的水平,对照CQ33到HEVC估计是4M多点,AV1的话是8M多点。在这样低码率的时候,AV1甚至处于劣势,HEVC表现很稳定。
另外HEVC在CQ25左右码率都没有明显波动。
当然,CQ一致不代表真实体验就是一个样子的。参考NVIDIA官网的一篇关于VMAF的文章 https://developer.nvidia.com/blog/improving-video-quality-and-performance-with-av1-and-nvidia-ada-lovelace-architecture/
在VMAF表中可以发现,3M的AV1对标6M的H264,9M的AV1对标12M的H264。
外部网站参考数据
H265对比H264,在1080P下减少码率62%,4K的话是64%
AV1的压缩效率较原先的VP9提升了20%
从测试结果来看:VP9的编码效率在H.264之上,但是在HEVC之下
根据Nettfix的一项测试,H.265的表现比VP9高出约20%。尽管其他的测试产生了不同的结果,但他们都得出结论,H.265创建了更小的文件大小。根据所使用的客观度量标准( objective metric ),H.265比VP9节省了0.6%至38.2%的比特率。
HEVC(H.265)比AVC(H.264)除了压缩率大一些外还有哪些优势?
HEVC能拿到比AVC接近50%的压缩率
HEVC 的效率大约是 AVC 的两倍
图中显示AV1对比AVC压缩优势高达55%
AV1的目标是在VP9/HEVC上基础上提高约30%的编码效率。
最新的编码质量对比研究表明,视频编码标准AV1在质量已经登顶,但在编码速度方面仍与VP9、HEVC相差甚远。MSU的研究表明,仅考虑编码质量时,AV1的性能已胜过HEVC和VP9,成为目前质量最高的可用视频编码标准。同时发现,在常规操作模式下,VP9相比于HEVC也有更好的编码质量。从图中可看到,在编码质量相同的情况下,AV1标准仅产生相比于x264 55%的数据量。
HEVC 预期相比 H.264 最多可以节省 50% 的 CDN 流量
AV1是一个由开放媒体联盟开发的下一代编解码器。AV1比目前最先进的视频编解码器VP9的压缩效率提高了30%。AV1解码器将被添加到基于官方比特流规范的Chrome桌面x86设备(Windows、macOS、Linux、Chrome OS)。目前,支持仅限于 “主 “配置文件0,不包括编码功能。支持的容器是ISO-BMFF(MP4)。
Feature: Enable HEVC hardware decoding
在有解码HEVC的硬件(如GPU、媒体加速器等)的平台上启用对HEVC视频解码的支持(安卓5.0以上,macOS 11以上,Windows 8以上和ChromeOS上有支持的硬件)。
H.265转码码率(比H.264下降30%)
总结
整体来说第三方数据和实验倒是出入不小。在都是用N卡进行硬编码时,至少在同CQ下,AV1并没有表现出优势,这可能是因为新添加的功能,也有可能是测试样本差异。
总体来说,录制时优先使用HEVC、AV1,而不是AVC,然后CQ调整到25左右即可在码率和质量取得一个较好的表现(对照AVC 4K CQ25是50M、1080P时则是16M)(此大小用来存储备份是挺不错的)然后交给网站去压缩。
如果要避免二压,则可能需要使用目标恒定码率 -b或者配合使用最大比特率-maxrate来控制比特率。
不过需要注意的是,该数据仅供参考,请以实际情况为准。
我的OBS配置
本地环境
大约500M下30M上,使用802.11ac-5G网络,不过由于距离限制和带宽冗余,实际下行400M上行35M左右(网卡 Intel AX210,主板自带,外置独立天线)
本地配置
i7-13700kf(z790-a主板)、ddr4 4000 16gX2(C17)、RTX4080 16G、仓库盘希捷机械ST4000VX015-4TB(海康OEM监控盘)、系统盘三星PM9A1-1TB(980PRO的OEM)
2K60显示器(通过DSR超分辨率到4K并使用175%缩放)
直播配置(哔哩哔哩源)
NV H264硬编码、原画不缩放(4K60)、VBR模式,比特率10M、最大比特率20M、关键帧间隔0(自动)、预设P2(较快,质量更低)、调节低延迟、单词编码、配置High、前向不开、心理开、最大B帧2
注:使用X264缩放到1080P进行直播时,CPU负载压力不是特别大(占用率估计20%左右),但是如果用X264进行4K直播时,CPU直接拉满起飞。而使用上述NV-H264硬编码时,CPU占用很低,且GPU的视频编码核心占用率也就10%左右。
录制配置
我录制到仓库盘希捷机械ST4000VX015-4TB(海康OEM监控盘),录制是比较令人头疼的,调低了视频不清晰,调高了视频文件太大,虽然指定码率可以有效控制视频大小,但是可能造成浪费和不足(比如静态页面就浪费空间了,高动态场景又不怎么够用)。经过一番调试,我发现在下面的配置情况下,比较能满足我的需求。我的目标是首先码率尽量不超过20M,同时画面体感正常,在考虑到哔哩哔哩等视频网站会压制到20M的水平,那么这个水平的视频上传不会造成太大的带宽浪费。为了调教动静态录制的问题,可以根据实际情况来调整,但是综合来说还是建议使用CQP模式。另外,如果是短时间的高动态场景可以把CQP拉高到15~25之间,如果是长时间的录播则可以降低CQP。我目前使用的配置如下:(不过可惜的是没有最大分辨率的限制)
NV AV1硬编码、原画不缩放(4K60)、CQP模式,CQ33、关键帧间隔0(自动)、预设P5(慢速,质量高)、调节低延迟、二次编码(1/4分辨率)、配置Main、前向不开、心理开、最大B帧2
在该模式和上面的直播一起开的情况下,都是4K60,GPU的视频编码核心占用率大概30%不到50%。当然,你也可以高CQ录好了之后自己再压制到目标水平。
参考资料
https://ift.tt/fqajWDZ
https://ift.tt/BFVwcOg
https://ift.tt/fxicUBK
https://ift.tt/8GclaIT
https://ift.tt/Grvxn6S
https://ift.tt/EiPmWLF
https://ift.tt/ZoJst0P
https://ift.tt/koVwEZ0
https://ift.tt/dO83lUD
https://ift.tt/knoe41f
https://ift.tt/vEelMWs
https://ift.tt/DZbGLSC
https://ift.tt/DRB4CmA
https://ift.tt/MFKg47E
https://ift.tt/owmkuT5
https://ift.tt/8ztrH7a
https://ift.tt/D1OidC0
https://ift.tt/92cqFf8
https://ift.tt/q6V9GBW
https://ift.tt/D0ERlnP
https://ift.tt/Yu7cKxD
https://ift.tt/0lDoUWj
本文转自 https://www.blueskyxn.com/202301/6814.html
本站仅做收录,版权归原作者所有。