最近项目需要录制摄像机拍摄的视频,使用h264编码。测试发现h264编码2k(1980×1080)视频还算流畅,但编码4k(3840×4120)视频出现明显卡顿丢帧现象。因此考虑使用h264 nvenc硬件编码。
将原本代码
AVCodec *codec = avcodec_find_encoder(AV_CODEC_ID_H264);
改为
AVCodec * codec = avcodec_find_encoder_by_name("nvenc_h264");
即可实现h264 nvenc硬件编码。
较CPU编码,h264 nvenc硬件编码的4k视频明显流畅许多,丢帧现象大幅减少。