Specifying H264 encoder parameters: profile, etc

Hi,

I am using the WebRTC example as the base for my app, so as far as camera setup, etc, it's exactly the same. I've been able to connect to another WebRTC client, and we noticed the video wasn't all that great: blocky and latency.

To eliminate our client as the issue, I went back to using the WebRTC example using its web client and server script. The video exhibited the same quality issues. I know there are quite a few parameters that can be specified which would improve quality.

How can I modify those?

Regards,
Andrew

Unity Editor version: 2022.2.0b4
ML2 OS version: B3E.220818.12-R.085 SDK Version 29
MLSDK version: 0.53.3
Host OS: Windows

1 Like

Hi @Andrew, Thank you for your post. Let me check in with our Engineers and I will report back asap.

2 Likes

Hello again, I spoke with our engineers and a fix for this will be in the current release. We corrected an issue in responding correctly to bitrate changes. I'll update you here when the release is available this month, you won't need to do anything beyond update to the next release.

2 Likes

Thanks. bitrate changes on-the-fly? what about the H264 encoding parameters? there are quite a few.
When do you expect this month's release to be available?

Andrew

1 Like

We're shooting for our next release Wednesday, Nov. 9. Can we re-examine the parameters then? I just want to make sure you have the latest fix, and then we can dial in.

I'm confirming the bitrate changes on the fly at the moment and will report back asap. Thank you.

1 Like

To better answer your question, I wanted to note the following, based on my discussion with our engineers:

WebRTC is an adaptive technology meaning that it takes into consideration various factors when attempting to provide the best experience. So while it is important to set initial configuration parameters, values such as bitrate should ideally change at runtime depending on factors such as network traffic, CPU load, etc, to provide the best experience for the environment that it finds itself in. Without the ability to adapt the bitrate at runtime, the system may reduce the framesize, for example, to which leads to many of the examples of poor quality video streams that we have seen. But this is supposed to all happen under the hood and it isn't something the end developer needs to write any code for. This is what was not working, and this is what was fixed. Our tests of the fix revealed dramatic improvement and we're confident this will solve the problems you described.

Please let me know if this helps better answer your question, and the reason for the initial low-quality video.

1 Like

Nov 9th? Great. I was hoping it’d be in the first half of the month.

Yes, we can re-examine this with the new release build.

I am already one release behind, so in the meantime, I will update my device and continue dev/testing.

I don’t want to be too far behind.

~WRD0000.jpg

1 Like

Hi @Andrew, just following up. WIth our latest release, has this solved your issue?

1 Like