Intel GPU及NVIDIA GPU对视频编解码支持情况

 编解码可以软编实现(CPU),或者硬编(GPU),当然还可以使用专用的编解码卡(IC),他们各有优点,但是基于硬件的处理往往速度更快。但是也有人说软编有更大的可调节性。这里我们只记录硬编的硬件支持情况,尤其是软编效率没有上来的情况下这显得尤其重要。

废话不多说,先上intel GPU QSV硬编解情况:

摘自:https://en.wikipedia.org/wiki/Intel_Quick_Sync_Video#Hardware_decoding_and_encoding

ffmpeg qsv使用方法:https://trac.ffmpeg.org/ticket/5899

重点:

CQ:

./ffmpeg_g -y -i in.mp4 -an -c:v hevc_qsv -load_plugin hevc_hw -q 30 out.mp4

CBR:

./ffmpeg_g -y -i in.mp4 -an -c:v hevc_qsv -load_plugin hevc_hw -b 5M -maxrate 5M out.mp4

注意:hevc_qsv只输出IB帧,无P帧。我反复尝试了N次后依然如此,尤其是其中有个-r 1(no B frames)给人无B帧的希望

。有段Intel人员给的解释如下:

 Sorry for a delayed response. Media SDK HW HEVC encoder uses Low Delay B-frames (LDB) or Generalized P/B (GPB) instead of P-frames. So, instead of encode P-frame with L0, Media SDK encodes LDB or GPB with the same L0 and L1. That's why you see just such LDB or GPB frame where both the L0 and L1 lists have the same I frame for reference and no P-frames. 
出处:https://software.intel.com/en-us/forums/intel-media-sdk/topic/623600

nvidia nvenc:


摘自:https://developer.nvidia.com/nvidia-video-codec-sdk#NVENCFeatures

https://developer.nvidia.com/video-encode-decode-gpu-support-matrix#Encoder