FFMPEG视频编码 NVIDIA 和 INTEL 硬件加速 x265 8bit 和 10bit

news/2024/11/8 6:16:20/

现在的显卡和两年前已经不一样。
从 NVIDIA 显卡的能力表来看,新卡 1070 支持 x265 10bit 编码。
正好最近有需求,来研究一下。
CPU也不一样了,现在是 i7-8750H, 顺便研究 intel 显卡硬件编码 x265。
FFMPEG 也不一样了,现在可以支持更多编码参数了。


2021-4-17 更新ffmpeg -codecs | sls cuvid
检查ffmpeg是否支持 nvenc 转码ffmpeg -h encoder=hevc_nvenc
检查 x265 nvenc 的可以使用的选项在同等文件大小情况下,仍然是CPU编码的质量最好,但两者差别不大。同时,码率越高,CPU编码和nvenc编码两者差别质量越少。
例如一部 13G 1080P 你的名字 蓝光电影,分别使用 CPU 和 nvenc 压到 3500K,两者差别几乎是肉眼不可分辨的。
简单的速度比较
一段影片,i7 8750H; GTX 1070
hevc		编码速度为 0.1X
hevc_nvenc	编码速度为 5.1X使用平均码率控制模式,建议使用这个,因为这个比较方便调整输出视频大小ffmpeg -i 1.mkv -b:v 3500K -bufsize 6000K -maxrate 5000K -c:v hevc_nvenc -preset slow -pix_fmt p010le -profile:v rext -level 6.2 -tier high -rc vbr_hq -rc-lookahead 250 -2pass 1 -nonref_p 1 2.mkv
转码 1.mkv 到 2.mkv
设定
-b:v 3500K			视频平均比特率为 3500K
-bufsize 6000K		缓存区大小 6000K,建议设定为 当前码率*帧率*5,也许这里的2pass是针对缓冲区的,缓存未来5s
-maxrate 5000K		最大码率为 5000K,每帧的最高码率不超过这个数值
-c:v hevc_nvenc		使用hevc_nvenc 编码器(nvidia硬件加速x265)
-preset slow		预设方案是 slow,slow已经是最好的选项了
-pix_fmt p010le		输出的像素格式是 p010le 也就10bit,只有新的硬件支持,例如:970m不支持,1070可以支持
-profile:v rext		设定 参考配置 为 rext,这个也是最好的选项
-level 6.2			设定编码等级为6.2,这个也是最好的选项
-tier high			设定 tier 为 high,当前最好选项把
-rc vbr_hq			设定质量控制类型为 vbr_hq
-rc-lookahead 250	前 250 帧作为码率控制的参数(貌似没用)
-2pass 1			使用 2pass 编码,但看不出什么差别,貌似没用
-nonref_p 1			使用自动插入无引用的P帧,不知道干嘛的如果要8bit的编码可以删掉上面的 -pix_fmt p010le 参数 再执行。# 2021年4月后的FFMPEG
ffmpeg -i .\1.mkv -b:v 4000K -bufsize 16000K -maxrate 8000K -c:v hevc_nvenc -preset p7 -tune hq -pix_fmt p010le -profile:v rext -level 6.2 -tier high -multipass 2 -rc-lookahead 1800 2.mkv
这个参数用来转换9g h264的电影,可能会不错ffmpeg.exe -i 1.mkv -b:v 2200K -bufsize 16000K -maxrate 3000K -c:v hevc_nvenc -preset p7 -tune hq -pix_fmt p010le -profile:v rext -level 6.2 -tier high  -multipass 2 -rc-lookahead 1800 -c:a aac -b:a 128K .\2.mkv# 过时,2020年的FFMPEG
ffmpeg -i .\1.mkv -b:v 4000K -bufsize 16000K -maxrate 8000K -c:v hevc_nvenc -preset slow -pix_fmt p010le -profile:v rext -level 6.2 -tier high -rc vbr_hq -rc-lookahead 1800 2.mkv
这个参数用来转换9g h264的电影,可能会不错使用固定qp模式,也就是固定质量模式,此时输出文件大小不怎么好估计,不是很关心文件大小可以用这个ffmpeg -y -i 1.mkv -c:v hevc_nvenc -preset p7 -profile:v rext -level 6.2 -tier high -rc constqp -qp 23 -nonref_p 1 2.mkv
这里基本与上面相同,不同的是这里使用固定质量模式
-rc constqp			代表使用固定质量模式
-qp 23				使用固定质量等级为23

2020-12-7 更新ffmpeg -codecs | sls qsv
检查ffmpeg是否支持 qsv 转码ffmpeg -h encoder=hevc_qsv
检查 x265 qsv 的可以使用的选项目前不建议使用hevc_qsv编码图像,因为在同等文件大小下,hevc_nvenc 编码的速度更快,并且质量更好。
简单的速度比较
一段影片,i7 8750H
hevc		编码速度为 0.1X
hevc_qsv	编码速度为 1.1X使用平均编码模式ffmpeg -i 1.mkv -b:v 3500K -bufsize 6000K -maxrate 5000K -vcodec hevc_qsv -preset slow -pix_fmt p010le -profile:v main10 2.mkv
转码 1.mkv 到 2.mkv
设定
-b:v 3500K			视频平均比特率为 3500K
-bufsize 6000K		缓存区大小 6000K,建议设定为 当前码率*帧率*5,也许这里的2pass是针对缓冲区的,缓存未来5s
-maxrate 5000K		最大码率为 5000K,每帧的最高码率不超过这个数值
-c:v hevc_qsv		使用 hevc_qsv 编码器(intel硬件加速x265)
-preset slow		预设方案是 slow,在我这里无法使用更高选项,但使用更高的选项会报错
-pix_fmt p010le		输出的像素格式是 p010le 也就10bit
-profile:v main10	设定 参考配置 为 main10,有rext选项,但无法使用,因为会报错如果要8bit的编码可以删掉上面的 -pix_fmt p010le 和 -profile:v main10 参数 再执行。
或者把对应参数改成 -pix_fmt nv12 和 -profile:v main ,效果和上面一样。目前 hevc_qsv 不支持CQP编码模式

http://www.ppmy.cn/news/185367.html

相关文章

SpringBoot整合Redis使用x-auth-tonken实现Session共享

文章目录 SpringBoot整合Redis使用x-auth-tonken实现Session共享1、配置pom.xml文件2、配置application.properties文件3、配置启动类4、验证4.1、编写一个Controller类4.2、使用postman发送请求4.2.1、设置会话信息4.2.2、获取会话信息 4.3、通过Redis Desktop Manager查看数据…

echart添加文本_echart在X轴下方添加字

使用Echart做统计图表,这个方便快捷还高大上 按照文档,很快就做出了一个柱图表 在X轴下方,要显示出对应日期是星期几(上图最下方,用红框的部分),这个问题查了很长时间的API,终于找到了一个疑似能解决这个问题的配置项. 这个配置项markLine, 位置在: https://www.echartsjs.com/…

Springboot2.x整合Ehcache3.x(代码方式)

首发传送门:Springboot2.x整合Ehcache3.x Ehcache简介 EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认CacheProvider。Ehcache是一种广泛使用的开源Java分布式缓存。主要面向通用缓存,Java EE和轻量级容器。…

cocos2d-x 编译不同版本VS的项目 检测到_MSC_VER的不匹配项:值1800不匹配值1900(xxxx.obj)

_MSC_VER 是VS编译器的版本 MS VC 14.0 _MSC_VER 1900 vs2015 平台是v140 MS VC 12.0 _MSC_VER 1800 vs2013的编译器 平台是v120 MS VC 11.0 _MSC_VER 1700 vs2012的编译器 平台是v110 MS VC 10.0 _MSC_VER 1600 Visual C 2010 MS VC 9.0 _MSC_VER 1500 Visual C 200…

TMS320C54x硬件结构及原理

TMS320C54x(以下简称C54x)系列DSP是一种低功耗、高性能的16位定点芯片它的突出特点是:采用改进型哈佛总线结构,具有性能强大的CPU内核、内部多总线结构、硬件重复机制及两套独立的地址产生器,为组成6级流水线和并行操作…

x264 ffmpeg编解码参数笔记

X264 ffmpeg 1、码率: 码流(Data Rate),是指视频文件在单位时间内使用的数据流量 三种可选的码率控制方法(bitrate, CQP,CRF), 选择的顺序是 bitrate > QP > CRF QP是固定量化参数,bitrate是固定…

小米AC2100|AX1800/AX3600/cr660x|红米AC2100/AX5/AX6/AX6S固件整理

本帖固件持续更新,请收藏网盘链接!!内容来自:小米官方固件、恩山论坛中大神编译的固件!第三方固件每一款本人都亲测使用过,精挑细选出来的超级好用的版本!无任何改动!下载前一定要看…

x5675相当于e5_2020年最新桌面CPU性能排行天梯图(含至强处理器)

1 Intel Xeon Platinum 8173M @ 2.00GHz 28860 2 Intel Xeon Gold 6154 @ 3.00GHz 27789 3 Intel Core i9-7980XE @ 2.60GHz 27736 4 Intel Xeon W-2195 @ 2.30GHz 26470 5 Intel Core i9-7960X @ 2.80GHz