做服务网站要多少钱,广东省城乡住房建设厅网站首页,敦煌网的网站推广方式,wordpress添加ppt我们在做Windows平台Unity播放RTMP或RTSP的时候#xff0c;遇到这样的问题#xff0c;比如展会、安防监控等场景下#xff0c;需要同时播放多路RTMP或RTSP流#xff0c;这样对设备性能#xff0c;提出来更高的要求。
虽然我们软解码#xff0c;已经做的资源占有非常低了…我们在做Windows平台Unity播放RTMP或RTSP的时候遇到这样的问题比如展会、安防监控等场景下需要同时播放多路RTMP或RTSP流这样对设备性能提出来更高的要求。
虽然我们软解码已经做的资源占有非常低了但考虑到多路播放的情况我们也设计了硬解码的接口下面大概讲下如何在Unity下开启硬解码 检测系统是否支持硬解码 /** 检查是否支持H264硬解码 * 如果支持的话返回NT_ERC_OK*/[DllImport(SmartPlayerSDK)]public static extern UInt32 NT_SP_IsSupportH264HardwareDecoder();/** 检查是否支持H265硬解码* 如果支持的话返回NT_ERC_OK*/[DllImport(SmartPlayerSDK)]public static extern UInt32 NT_SP_IsSupportH265HardwareDecoder();
如果支持设置H.264、H.265硬解码 /** 设置H264硬解* is_hardware_decoder: 1:表示硬解, 0:表示不用硬解* reserve: 保留参数, 当前传0就好* 成功返回NT_ERC_OK*/[DllImport(SmartPlayerSDK)]public static extern UInt32 NT_SP_SetH264HardwareDecoder(IntPtr handle, Int32 is_hardware_decoder, Int32 reserve);/** 设置H265硬解* is_hardware_decoder: 1:表示硬解, 0:表示不用硬解* reserve: 保留参数, 当前传0就好* 成功返回NT_ERC_OK*/[DllImport(SmartPlayerSDK)]public static extern UInt32 NT_SP_SetH265HardwareDecoder(IntPtr handle, Int32 is_hardware_decoder, Int32 reserve);
Unity环境下调用是否支持硬解码可以在Init后就调用
uint isInited NTSmartPlayerSDK.NT_SP_Init(0, IntPtr.Zero);if (isInited ! 0)
{Debug.LogError(调用NT_SP_Init失败.. isInited.ToString());return;
}is_support_h264_hardware_decoder_ NT.NTBaseCodeDefine.NT_ERC_OK NT.NTSmartPlayerSDK.NT_SP_IsSupportH264HardwareDecoder();
is_support_h265_hardware_decoder_ NT.NTBaseCodeDefine.NT_ERC_OK NT.NTSmartPlayerSDK.NT_SP_IsSupportH265HardwareDecoder();Debug.Log(isSupportH264decoder: is_support_h264_hardware_decoder_);
Debug.Log(isSupportH265decoder: is_support_h265_hardware_decoder_);
如果检测到支持的话设置下硬解码即可
NTSmartPlayerSDK.NT_SP_SetH264HardwareDecoder(videoctrl[sel].player_handle_, is_support_h264_hardware_decoder_ ? 1 : 0, 0);
NTSmartPlayerSDK.NT_SP_SetH265HardwareDecoder(videoctrl[sel].player_handle_, is_support_h265_hardware_decoder_ ? 1 : 0, 0);
如果系统支持硬解码开启后可以明显看到CPU占用会有一定的改善在多路播放的场景下还是非常必要感兴趣的开发者可以参考设计。