GPU-accelerated video processing with ffmpeg

前端 未结 3 1139
孤城傲影
孤城傲影 2020-12-13 06:25

I want to use ffmpeg to accelerate video encode and decode with an NVIDIA GPU.

From NVIDIA\'s website:

NVIDIA GPUs contain one or more hardwa

相关标签:
3条回答
  • 2020-12-13 06:55

    FFmpeg provides a subsystem for hardware acceleration, which includes NVIDIA: https://trac.ffmpeg.org/wiki/HWAccelIntro

    In order to enable support for GPU-assisted encoding with an NVIDIA GPU, you need:

    • A ​supported GPU
    • Supported drivers for your operating system
    • The NVIDIA Codec SDK
    • ffmpeg configured with --enable-nvenc (default if the drivers are detected while configuring)
    0 讨论(0)
  • 2020-12-13 07:01

    Quick use on ​supported GPU:

    CUDA

    ffmpeg -hwaccel cuda -i input output
    

    CUVID

    ffmpeg -c:v h264_cuvid -i input output
    

    Full hardware transcode with NVDEC and NVENC:

    ffmpeg -hwaccel cuda -hwaccel_output_format cuda -i input -c:v h264_nvenc -preset slow output
    

    If ffmpeg was compiled with support for libnpp, it can be used to insert a GPU based scaler into the chain:

    ffmpeg -hwaccel_device 0 -hwaccel cuda -i input -vf scale_npp=-1:720 -c:v h264_nvenc -preset slow output.mkv
    

    Source: https://trac.ffmpeg.org/wiki/HWAccelIntro

    0 讨论(0)
  • 2020-12-13 07:14

    As Mike mentioned, ffmpeg wraps some of these HW-accelerations. You should use it instead of going for more low-level approaches (official NVIDIA libs) first!

    The table shows, that NVENC is probably your candidate.

    But: Be careful and so some benchmarking. While GPU-encoders should be very fast, they are also worse than CPU ones in comparision to visual quality.

    The thing to check here is: Does a GPU-encoder compete with a CPU-encoder when some quality at some given bitrate is targeted? I would say no no no (except for very high bitrates or very bad quality), but that's something which dependes on your use-case. GPU-encoding is not a silver-bullet providing only advantages.

    0 讨论(0)
提交回复
热议问题