You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
For this test, the PlayerEndpoint receives a h264 video on 1080p, then passes it to a RecorderEndpoint that stores it on an MP4 file, and also sends it to a single WebRtcEndpoint that consumes it.
The SDP of the WebRtc client application is edited to prefer h264 over VP8, so the whole chain requires no transcoding.
However, this runs into the problem that the quality on the client and recording is awful, and the problem seems to be the bitrate, which is capped to roughly 500k:
If I change the container of the RecorderEndpoint to .webm, my understanding is that this forces a transcoding to VP8, and in doing that the quality massively improves not only on the recording but also on the client (which, as shown above, is not directly connected to the RecorderEndpoint), with the bitrate being higher:
It's my understanding that Kurento has some default bitrate caps, however I've had very little success when changing them, I've tried calling SetMin/MaxRecvBandwith methods on the WebRtcEndpoint and changing the encoderBitrate parameter on the MediaElement configuration, and I haven't noticed any effect whatsoever.
My guess for this is that the encoderBitrate parameter only applies when there's transcoding needed, case in which it overrides the default value (although I can't explain the bitrate received as according to the conf file the default encoderBitrate value is 300 kbps). Then I'm left wondering how to override the default bitrate cap, as I've tried to look for APIs to change bitrates on both WebRtcEndpoint and PlayerEndpoint to no avail.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
I'm using KMS 7.0 for an application with the following structure:
PlayerEndpoint -> RecorderEndpoint
-> WebRtcEndpoint
For this test, the PlayerEndpoint receives a h264 video on 1080p, then passes it to a RecorderEndpoint that stores it on an MP4 file, and also sends it to a single WebRtcEndpoint that consumes it.
The SDP of the WebRtc client application is edited to prefer h264 over VP8, so the whole chain requires no transcoding.
However, this runs into the problem that the quality on the client and recording is awful, and the problem seems to be the bitrate, which is capped to roughly 500k:
If I change the container of the RecorderEndpoint to .webm, my understanding is that this forces a transcoding to VP8, and in doing that the quality massively improves not only on the recording but also on the client (which, as shown above, is not directly connected to the RecorderEndpoint), with the bitrate being higher:
It's my understanding that Kurento has some default bitrate caps, however I've had very little success when changing them, I've tried calling SetMin/MaxRecvBandwith methods on the WebRtcEndpoint and changing the encoderBitrate parameter on the MediaElement configuration, and I haven't noticed any effect whatsoever.
My guess for this is that the encoderBitrate parameter only applies when there's transcoding needed, case in which it overrides the default value (although I can't explain the bitrate received as according to the conf file the default encoderBitrate value is 300 kbps). Then I'm left wondering how to override the default bitrate cap, as I've tried to look for APIs to change bitrates on both WebRtcEndpoint and PlayerEndpoint to no avail.
Thanks in advance.
Beta Was this translation helpful? Give feedback.
All reactions