I have implemented a server that grabs the desktop vi a mirrordriver, encodes and sends out the stream to the network.
I have uptill now used the H264, but have problems getting a low latency. I have followed all the recommandations in the videoconference sample with no sucess.
I therefore tried the MPEG2 encoding option, to see if there was any difference in the latency. Surpsrisingly there was a big difference.
The only difference for MPEG2/H264 in the settings are:
mfxEncParams.mfx.CodecId = MFX_CODEC_AVC; mfxEncParams.mfx.CodecProfile = MFX_PROFILE_AVC_HIGH; mfxEncParams.mfx.CodecLevel = MFX_LEVEL_AVC_5;
mfxEncParams.mfx.CodecId = MFX_CODEC_MPEG2; mfxEncParams.mfx.CodecProfile = MFX_PROFILE_MPEG2_HIGH; mfxEncParams.mfx.CodecLevel = MFX_LEVEL_MPEG2_HIGH;
As I mentioned the latency is much lower with the MPEG2 than the H264. I would happily stick to the MPEG2, as it does not seem to use much more network badwidth etc, compared to the H264, with the low latency setting.
I would happily use the MPEG2 encoding, BUT there is another difference.
The problem is that when using the MPEG2, it eats memory. When using the H264, it does not eat memory. (the only difference is the settings as shown above) I have tested with the 2014 version of libmfxsw32.dll, with the same result. I have an Intel HD graphics 4000 card with a driver date of 31.10.2013, version 10.18.10.3345. I have searched the forum as well for solutions, but have not found any sofar.
Are there known memory issues with the MPEG2 encoding, or could there be some settings that could effect it?