FFMPEG视频编码 NVIDIA 和 INTEL 硬件加速 x265 8bit 和 10bit
现在的显卡和两年前已经不一样。
从 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编码模式
FFMPEG视频编码 NVIDIA 和 INTEL 硬件加速 x265 8bit 和 10bit相关推荐
- 使用Lucid Virtu在有独立显卡的情况下使用Intel硬件加速H.264编码
在硬编码领域,大家都知道CUDA技术对于H.264视频编码速度的提升.然而实际上常见的高清H.264视频压缩都不是用CUDA技术进行硬编码,而是用传统的x264进行软编码,因为通过CUDA硬编码的视频 ...
- Intel硬件加速 VS CUDA完胜 视频转码感受
对比试用平台介绍 在体验了酷睿 I5 2300 在3D游戏和多任务.高清播放等方面的突出性能后,今天我利用空闲时间针对酷睿 I5 2300在高清转码方面上与本人的旧平台上对比了一下.,其结果也让人感到 ...
- FFmpeg —— 查看NVIDIA显卡对硬件加速的支持
起因 起初了解学习掌握ffmpeg的编解码,以为只是学会了相关API的使用就可以了,但现实却不是这样的.视频.音频.字幕等都是需要仔细的学习了解,更是对一个行业的涉足. 在对ffm ...
- 腾讯视频怎么开启禁止界面硬件加速
本文小编给大家分享"腾讯视频怎么开启禁止界面硬件加速".腾讯视频播放器下载界面设计.功能操作使用.启动播放速度.视频内容数量.画面品质等方面均得到了用户的高度认可.相对于其他几大视 ...
- LiveVideoStackCon 2018技术培训 — 从FFmpeg视频编码到抖音式视频特效实现
LiveVideoStackCon 2018技术培训,"从FFmpeg视频编码到抖音式视频特效实现".我们拒绝"纸上谈兵",坚持技术讲解与实战训练相结合.门票火 ...
- ffmpeg 视频编码一(精简版)
1. ffmpeg 视频解码一 2. ffmpeg 视频解码二 3. ffmpeg 音频解码一 4. ffmpeg 音频解码二 5. ffmpeg 音视频解码 6. ffmpeg 视频编码一 7. f ...
- ffmpeg 视频编码三(基于 libavfilter 转换视频)
1. ffmpeg 视频解码一 2. ffmpeg 视频解码二 3. ffmpeg 音频解码一 4. ffmpeg 音频解码二 5. ffmpeg 音视频解码 6. ffmpeg 视频编码一 7. f ...
- 【ffmpeg基础】ffmpeg视频编码
一.ffmpeg编码H264 输入为YUV输出为H264 ffmpeg -s 416x240 -pix_fmt yuv420p -i BlowingBubbles_416x240_50.yuv -r ...
- ffmpeg Intel硬件加速总结
0. 概述 FFmpeg可通过Intel的GPU进行加速,加速器的名称是Intel Quick Sync Video,简称qsv,支持该加速器的Intel处理器的型号是带有Intel Iris gra ...
- FFmpeg视频编码步骤
未编码的视频数据放在AVFrame中, 编码的视频数据放在AVPacket 本文不介绍源码级的代码, 如何使用ffmpeg的API将AVFrame转为AVPacket并保存在文件中. 以H264编码格 ...
最新文章
- 牛!月入2w,95后送外卖的程序员,送餐途中改bug
- 1660s功耗多少w_1660显卡要多大电源?GTX1660用多大电源合适
- swing 选择对话框_Java Swing –日期选择器对话框
- spring boot构建
- 智能数据引擎Dataphin重磅发布,提供一站式的技术管理能力
- PHP学习笔记(八)
- 关于SQL时间类型的模糊查询
- R语言基础期末大作业
- 【Sibelius】制谱软件 (西贝柳斯)入门笔记
- 数学科普书籍介绍(一)
- 1.2、logistic回归之极大似然法
- Java十进制转换为二进制
- 对一个整形数组进行顺序排列
- tesseract安装及配置
- Doom流量回放工具导致的测试环境服务接口无响应的排查过程
- C语言如何求n次方根
- is running 8724480B beyond the ‘PHYSICAL‘ memory limit.
- 第四讲 switch结构和循环(switch结构、while循环、do-while循环)
- 推荐几款机顶盒用的芯片
- 计算机网络配适器型号在哪里看,网络适配器型号在哪看_怎么更换网络适配器...