NVIDIA GPU加速FFmpeg

一、参考资料

使用GPU硬件加速FFmpeg视频转码

二、重要指令

  1. 查看支持的硬件加速选项

    ffmpeg -hwaccels
    
  2. 查看cuvid提供的GPU编解码器

    ffmpeg -codecs | grep cuvid
    

    所有带有"cuvid"或"nvenc"的,都是CUDA提供的GPU编解码器

  3. 将h264编码的源视频转码为指定尺寸和码率的h264编码视频

    ffmpeg -hwaccel cuvid -c:v h264_cuvid -i <input> -c:v h264_nvenc -b:v 2048k -vf scale_npp=1280:-1 -y <output>
    

    参数解释:

    -hwaccel cuvid:指定使用cuvid硬件加速;
    -c:v h264_cuvid:使用 h264_cuvid 解码器进行视频解码;
    -c:v h264_nvenc:使用 h264_nvenc 编码器进行视频编码;
    -vf scale_npp=1280:-1:指定输出视频的宽高,注意:这里和软解码时使用的-vf scale=x:x不一样;
    
    解码器:
    h264_cuvid
    mjpeg_cuvid
    
    编码器:
    nvenc
    h264_nvenc
    nvenc_h264
    nvenc_hevc
    
  4. 向不同GPU提交转码任务

    ffmpeg -hwaccel cuvid -hwaccel_device 0 -c:v h264_cuvid -i <input> -c:v h264_nvenc -b:v 2048k -vf scale_npp=1280:-1 -y <output>
    
    ffmpeg -hwaccel cuvid -hwaccel_device 1 -c:v h264_cuvid -i <input> -c:v h264_nvenc -b:v 2048k -vf scale_npp=1280:-1 -y <output>
    

    参数解释:

    hwaccel_device 参数指定转码任务使用的GPU;
    -hwaccel_device N:指定某颗GPU执行转码任务,N为数字;
    
  5. 转码

    ffmpeg -hwaccel cuvid -c:v mjpeg_cuvid -i a.avi -c:v nvenc -crf 0 -b 60M a1.mp4 -y 
    
    ffmpeg -hwaccel cuvid -c:v h264_cuvid -i test10_2ms_30fps_60s.h264 -c:v h264_nvenc -crf 0 -b 4M test10_2ms_30fps_60s.mp4 -y
    
  6. 压缩

    ffmpeg -hwaccel cuvid -c:v h264_cuvid -i a1.mp4 -c:v nvenc -b 200k -an aa.mp4
    
    ffmpeg -hwaccel cuvid -c:v h264_cuvid -i a1.mp4 -c:v h264_nvenc -b:v 200k -an aa.mp4
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

花花少年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值