提示

返回博客列表

转码太慢?彻底搞懂硬件加速转码(NVENC / QSV / AMF)

转码太慢?彻底搞懂硬件加速转码(NVENC / QSV / AMF)

用 CPU 软编码(libx264/libx265)转一个 4K 视频,耗时可能比视频本身还长,CPU 还被吃得满满当当。如果你有独立显卡或带核显的 Intel CPU,完全可以交给硬件编码器,速度能快 5 到 20 倍,几乎不占 CPU。这篇文章把三类主流硬件编码(NVIDIA NVENC、Intel QSV、AMD AMF)的原理、用法、质量调优和坑一次讲透。

一、软编 vs 硬编到底差在哪

  • 软编(libx264/libx265):纯 CPU 计算,质量/体积比最好,但慢、吃 CPU、高分辨率下极其耗时;
  • 硬编(NVENC 等):显卡上的专用编码电路(ASIC)干活,极快、几乎不占 CPU,但同码率下画质略逊于软编顶级参数。

经验法则:追求速度、批量转、实时转、低延迟用硬编;追求极限画质、压体积用软编。

二、查看本机支持什么

ffmpeg -hide_banner -encoders | grep -iE "nvenc|qsv|amf"

Linux 下用 grep,能看到 h264_nvenchevc_nvench264_qsvh264_amf 等就说明支持(前提是你装的 ffmpeg 编译时带了对应该硬件的后端)。

三、NVIDIA NVENC(最常见)

ffmpeg -i input.mp4 -c:v h264_nvenc -preset p4 -b:v 4M output.mp4
  • -preset p1~p7:速度/质量档,p1 最快最差,p7 最慢最好,默认 p4;
  • H.265 编码器叫 hevc_nvenc
  • 新架构(Turing 及以后)NVENC 质量已非常接近软编。

完整质量调优:

ffmpeg -i input.mp4 -c:v h264_nvenc -preset p6 \
  -rc vbr -cq 24 -b:v 4M -maxrate 6M -bufsize 8M \
  -c:a copy output.mp4
  • -rc vbr -cq 24:恒定质量模式(类似 CRF);
  • -maxrate/-bufsize:限制峰值码率,防波动。

四、Intel QSV(核显)

ffmpeg -init_hw_device qsv=hw -filter_complex "format=nv12,hwupload" \
  -i input.mp4 -c:v h264_qsv -b:v 4M output.mp4

老版本需要先 -init_hw_device qsv=hw。QSV 对 Intel 核显(尤其笔记本)极其实用,功耗低。

五、AMD AMF

ffmpeg -i input.mp4 -c:v h264_amf -b:v 4M output.mp4

六、各硬件能力对照(概览)

方案 速度 同码率画质 设备 典型限制
libx264 最好 任意 CPU
NVENC 8–20× 略逊 N 卡 老卡不支持 HEVC/AV1
QSV 5–10× Intel 核显 质量参数较少
AMF 5–12× A 卡 质量调优空间有限

七、硬解 + 硬编一条龙(不落 CPU)

只编码用硬编还不够,解码也走硬件才彻底:

ffmpeg -hwaccel cuda -i input.mp4 -c:v h264_nvenc -b:v 4M output.mp4

-hwaccel cuda 让解码也在 GPU 上完成,全程数据不绕 CPU,适合实时转封装/转码。H.264 解码器名 h264_cuvid,H.265 用 hevc_cuvid

八、什么时候不该用硬编

  • 你要压到极限体积(硬编同码率画质略差,CMAQ 类极致压缩软编更优);
  • 目标设备不支持硬编输出格式;
  • 硬编对极端参数(如超高 CRF)支持不如软编灵活。

九、常见翻车现场

现象 根因 解法
Device not found 没装驱动/ffmpeg 没编进去 装显卡驱动、换带 hwaccel 的 ffmpeg
色彩发灰 硬编默认 limited range -color_range/显式指定
最大分辨率受限 老显卡规格 查显卡规格或先缩分辨率
多路并发掉速 编码器会话数到顶 控制并发数
输出打不开 用了太新/太偏的 profile 用兼容 profile(如 main)

十、常见问题

Q:硬编能压 H.265 吗? 能,用 hevc_nvenc/hevc_qsv,但老显卡可能不支持 HEVC 编码。

Q:和软编画质差很多吗? 同码率下略差,但新架构 NVENC 差距已经很小,换来几倍到十几倍速度,多数场景值得。

Q:能多卡并行吗? 能,多张卡用 -gpu/设备索引分别指定,分别起进程。

Q:直播推流能用吗? 能,硬编低延迟正是直播推流(OBS、ffmpeg RTMP)的标配。

小结

硬编是"用专用电路换速度",NVENC/QSV/AMF 三选一取决于你的显卡。记住:调质量用 -rc vbr -cq,解码也上 -hwaccel 才彻底,老卡注意格式支持。批量/实时转码首选硬编,极限画质再回软编。

想亲手试试?用 VidDown 一键解析下载

粘贴视频链接即可解析,多平台支持、网页端即用;下载桌面客户端解锁海外平台本地解析,开通会员更享不限次下载。

顶部