UE虚幻引擎云渲染支持8K方案

UE自带的pixel streaming只支持4K以内的编码,查看HardwareEncoders插件源码,发现nvenc编码器由于硬件限制,超过4K分辨率的视频编码必须使用h265 hevc编码,默认情况下使用h264不支持8K分辨率。

修改源码PluginsHardwareEncodersSourceEncoderNVENCPrivateNVENC_EncoderH264.cpp


EncoderInitParams.encodeGUID = NV_ENC_CODEC_HEVC_GUID;

EncoderConfig.profileGUID = NV_ENC_CODEC_PROFILE_AUTOSELECT_GUID;

EncoderConfig.encodeCodecConfig.hevcConfig.level = NV_ENC_LEVEL_AUTOSELECT;

EncoderInitParams.encodeConfig->profileGUID = NV_ENC_CODEC_PROFILE_AUTOSELECT_GUID;

如果需要编码后的裸流,可以在ProcessEncodedBuffer函数取出

if (fp == nullptr) 
    fp = fopen("playback.h265","wb");

fwrite(Buffer->BitstreamData, Buffer->BitstreamDataSize, 1, fp);