ffmpeg 调用 NVIDIA GPU 处理视频转码,笔记。和纯用CPU比起来,速度快5倍以上

参考别人的文章

FFMPEG 使用显卡加速转码
ffmpeg 调用 NVIDIA GPU 处理视频转码
ffmpeg 硬件加速视频转码指南
ffmpeg 硬件加速 wmv 视频转码


自己的关于ffmpeg的命令收集

ffmpeg ffplay 命令收集


笔记

硬编码后缀解释

qsv:intel显卡的快速视频同步技术(quick sync video)
nvenc:nvidia显卡的硬件视频编码器(nvidia hardware video encoder)
cuvid:nvdec的旧称,只有解码端。
cuda: 同上.nvdec的旧称,只有解码端。
amf:amd显卡的amf硬件编码器(amd hardware encoder)

下面都是在cmd中跑命令出来的结果

-------------------------------------------------------------
查看支持的硬件加速方式,上面有解释
PS C:\Users\gsp\Desktop\change2h265> ffmpeg.exe -hwaccels
Hardware acceleration methods:
cuda
dxva2
qsv
d3d11va

-------------------------------------------------------------
获取支持的编解码器选项
ffmpeg -codecs | sls nvenc
 DEV.LS h264                 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_qsv h264_cuvid ) (encoders:
 libx264 libx264rgb h264_amf h264_nvenc h264_qsv )
 DEV.L. hevc                 H.265 / HEVC (High Efficiency Video Coding) (decoders: hevc hevc_qsv hevc_cuvid ) (encoder
s: libx265 hevc_amf hevc_nvenc hevc_qsv )

-------------------------------------------------------------
获取支持的H264解码器选项
ffmpeg -decoders |sls 264
 VFS..D h264                 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
 V....D h264_qsv             H264 video (Intel Quick Sync Video acceleration) (codec h264)
 V..... h264_cuvid           Nvidia CUVID H264 decoder (codec h264)
 -------------------------------------------------------------
获取支持的H265解码器选项
ffmpeg -decoders |sls hevc
 VFS..D hevc                 HEVC (High Efficiency Video Coding)
 V....D hevc_qsv             HEVC video (Intel Quick Sync Video acceleration) (codec hevc)
 V..... hevc_cuvid           Nvidia CUVID HEVC decoder (codec hevc)


-------------------------------------------------------------
获取支持的H264编码器选项
ffmpeg -encoders |sls 264
 V....D libx264              libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (codec h264)
 V....D libx264rgb           libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 RGB (codec h264)
 V....D h264_amf             AMD AMF H.264 Encoder (codec h264)
 V....D h264_nvenc           NVIDIA NVENC H.264 encoder (codec h264)
 V..... h264_qsv             H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (Intel Quick Sync Video acceleration) (codec h26
4)

-------------------------------------------------------------
获取支持的H265编码器选项
ffmpeg -encoders |sls hevc
 V....D libx265              libx265 H.265 / HEVC (codec hevc)
 V....D hevc_amf             AMD AMF HEVC encoder (codec hevc)
 V....D hevc_nvenc           NVIDIA NVENC hevc encoder (codec hevc)
 V..... hevc_qsv             HEVC (Intel Quick Sync Video acceleration) (codec hevc)


别人的文章写的命令例子

硬件加速命令

ffmpeg -hwaccel cuvid -c:v h264_cuvid -i input.mp4 -c:v h264_nvenc -b:v 2048k -s 1920x1080 output.mp4

-hwaccel cuvid:使用cuvid进行硬件加速
-c:v h264_cuvid:使用h264_cuvid进行解码
-c:v h264_nvenc:使用h264_nvenc进行编码(nvidia硬件加速x265)
-b:v 2000k:比特率,值越大约清晰。
-s 1920x1080:分辨率
-b:v 3500K :视频平均比特率为 3500K
-bufsize 6000K:缓存区大小 6000K,建议设定为 当前码率帧率5,也许这里的2pass是针对缓冲区的,缓存未来5s
-maxrate 5000K:最大码率为 5000K,每帧的最高码率不超过这个数值
-preset slow:预设方案是 slow,slow已经是最好的选项了
-pix_fmt p010le:输出的像素格式是 p010le 也就10bit,只有新的硬件支持,例如:970m不支持,1070可以支持

==========================================================================================

我的用来将H264转成H265,使用电脑显卡NVIDIA 1050加速的命令

ffmpeg -hwaccel cuvid -c:v h264_cuvid -i input.mp4 -c:v hevc_nvenc output.mp4

-hwaccel cuvid:使用cuvid进行硬件加速
-c:v h264_cuvid:使用h264_cuvid进行解码
-c:v hevc_nvenc:使用hevc_nvenc进行编码(nvidia硬件加速x265)

猜你喜欢

转载自blog.csdn.net/gsp1004/article/details/127974615