参考别人的文章
FFMPEG 使用显卡加速转码
ffmpeg 调用 NVIDIA GPU 处理视频转码
ffmpeg 硬件加速视频转码指南
ffmpeg 硬件加速 wmv 视频转码
自己的关于ffmpeg的命令收集
笔记
硬编码后缀解释
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)