我想使用ffmpeg加速视频编解码与NVIDIA GPU。
来自NVIDIA网站:
NVIDIA GPU包含一个或多个基于硬件的解码器和编码器(独立于CUDA核心),为几个流行的编解码器提供完全加速的基于硬件的视频解码和编码。通过卸载解码/编码,图形引擎和CPU可以自由进行其他操作。
我的问题是:我能否使用CUDA核心来编码和解码视频,也许更快?
发布于 2017-06-13 10:14:00
FFmpeg提供了一个硬件加速子系统,其中包括NVIDIA:https://trac.ffmpeg.org/wiki/HWAccelIntro。
为了支持使用NVIDIA GPU进行GPU辅助编码,您需要:
--enable-nvenc
的ffmpeg (如果在配置时检测到驱动程序,则为默认值)发布于 2020-08-25 18:50:07
在支持的GPU上快速使用
库达
ffmpeg -hwaccel cuda -i input output
CUVID
ffmpeg -c:v h264_cuvid -i input output
与NVDEC和NVENC的完整硬件转换代码:
ffmpeg -hwaccel cuda -hwaccel_output_format cuda -i input -c:v h264_nvenc -preset slow output
如果ffmpeg是在支持libnpp的情况下编译的,那么它可以用于在链中插入一个基于GPU的定标器:
ffmpeg -hwaccel_device 0 -hwaccel cuda -i input -vf scale_npp=-1:720 -c:v h264_nvenc -preset slow output.mkv
发布于 2017-06-13 10:24:07
正如Mike提到的,ffmpeg封装了一些HW加速。你应该使用它,而不是去更低层次的方法(官方的NVIDIA libs)第一!
表格显示,NVENC可能是您的候选人。
但是:要小心,做一些基准测试。虽然GPU编码器应该非常快,但与视觉质量相比,它们也比CPU更差。
这里要检查的是:当某些给定比特率的质量被瞄准时,GPU编码器是否与CPU编码器竞争?我会说不(除了非常高的比特率或非常糟糕的质量),但这取决于您的用例。GPU编码并不是提供优势的银弹。
https://stackoverflow.com/questions/44510765
复制相似问题