This occurs on low network conditions; We were testing it on Browserstack on iPad.
Is this a known/expected issue ?
VP8 support was recently added to Safari in iOS. Before that, only H264 was supported. Probably your iPad doesn’t support it.
Does enabling transcoding when starting a session going to help ? or I simply have to set the entire session on h264 ?
@pabloFuente
Hello @Harsh_wardhan, I would like to ask you: does this happens with the same IPad when is not in “low network conditions”?
Force coding in browsers decrease a lot CPU usage of Kurento Media Server. The reason we’ve decided to use VP8 by default is because its compatibility across browsers, but maybe it does not fit your use case in this specific scenario. You have different possibilities here, I will expose all the possible solutions so you can decide which one fits better for you:
-
Allow transcoding
This will fix the issue but it will lead to high CPU usage when codecs from different browsers don’t match because Kurento needs to encode the publisher video to all the subscriber.In your
/opt/openvidu/.env
file it will look like this. This will apply to all sessions:
OPENVIDU_FORCED_CODEC=VP8
OPENVIDU_ALLOW_TRANSCODING=true
-
Force to H264 and don’t allow transcoding
The unique problem you will have here are browsers which has not H264 available, which may fail:In your
/opt/openvidu/.env
file it will look like this. This will apply to all sessions:
OPENVIDU_FORCED_CODEC=H264
OPENVIDU_ALLOW_TRANSCODING=false
-
Don’t force any codec and allow transcoding
This is how OpenVidu behaves before force codecs was implemented in 2.17.0. This can lead also to some High CPU because transcoding being used when browser codecs don’t match, but it should be less CPU than option 1.
In your
/opt/openvidu/.env
file it will look like this. This will apply to all sessions:
OPENVIDU_FORCED_CODEC=NONE
OPENVIDU_ALLOW_TRANSCODING=true
Note: If you want to configure these parameters at session level (different parameters for each session) you need to set them using OpenVidu API or Java/Node clients:
- In Java you can add this properties in
SessionProperties
object: OpenVidu Docs - In Node you can add this properties in
properties
object: OpenVidu Docs - Using the Rest API is pretty self explanatory
but you need to modify the parameters
forcedVideoCodec
andallowTranscoding
of the POST request: OpenVidu Docs