diff --git a/openvidu-server/deployments/ce/docker-compose/.env b/openvidu-server/deployments/ce/docker-compose/.env index 460f8f10..b4237a21 100644 --- a/openvidu-server/deployments/ce/docker-compose/.env +++ b/openvidu-server/deployments/ce/docker-compose/.env @@ -126,6 +126,15 @@ OPENVIDU_STREAMS_VIDEO_MAX_SEND_BANDWIDTH=1000 # 0 means unconstrained OPENVIDU_STREAMS_VIDEO_MIN_SEND_BANDWIDTH=300 +# All sessions of OpenVidu will try to force this codec. If OPENVIDU_STREAMS_ALLOW_TRANSCODING=true +# when a codec can not be forced, transcoding will be allowed +# Default value is VP8 +# OPENVIDU_STREAMS_FORCED_VIDEO_CODEC=VP8 + +# Allow transcoding if codec specified in OPENVIDU_STREAMS_FORCED_VIDEO_CODEC can not be applied +# Default value is false +# OPENVIDU_STREAMS_ALLOW_TRANSCODING=false + # true to enable OpenVidu Webhook service. false' otherwise # Values: true | false OPENVIDU_WEBHOOK=false @@ -153,15 +162,6 @@ OPENVIDU_SESSIONS_GARBAGE_INTERVAL=900 # (property 'OPENVIDU_SESSIONS_GARBAGE_INTERVAL' to 0) this property is ignored OPENVIDU_SESSIONS_GARBAGE_THRESHOLD=3600 -# All sessions of OpenVidu will try to force this codec. If OPENVIDU_ALLOW_TRANSCODING=true -# when a codec can not be forced, transcoding will be allowed -# Default value is VP8 -# OPENVIDU_FORCED_CODEC=VP8 - -# Allow transcoding if codec specified in OPENVIDU_FORCED_CODEC can not be applied -# Default value is false -# OPENVIDU_ALLOW_TRANSCODING=false - # Call Detail Record enabled # Whether to enable Call Detail Record or not # Values: true | false diff --git a/openvidu-server/deployments/pro/docker-compose/openvidu-server-pro/.env b/openvidu-server/deployments/pro/docker-compose/openvidu-server-pro/.env index 7e3216ef..c98a95fb 100644 --- a/openvidu-server/deployments/pro/docker-compose/openvidu-server-pro/.env +++ b/openvidu-server/deployments/pro/docker-compose/openvidu-server-pro/.env @@ -234,6 +234,15 @@ OPENVIDU_STREAMS_VIDEO_MAX_SEND_BANDWIDTH=1000 # 0 means unconstrained OPENVIDU_STREAMS_VIDEO_MIN_SEND_BANDWIDTH=300 +# All sessions of OpenVidu will try to force this codec. If OPENVIDU_STREAMS_ALLOW_TRANSCODING=true +# when a codec can not be forced, transcoding will be allowed +# Default value is VP8 +# OPENVIDU_STREAMS_FORCED_VIDEO_CODEC=VP8 + +# Allow transcoding if codec specified in OPENVIDU_STREAMS_FORCED_VIDEO_CODEC can not be applied +# Default value is false +# OPENVIDU_STREAMS_ALLOW_TRANSCODING=false + # true to enable OpenVidu Webhook service. false' otherwise # Values: true | false OPENVIDU_WEBHOOK=false @@ -261,15 +270,6 @@ OPENVIDU_SESSIONS_GARBAGE_INTERVAL=900 # (property 'OPENVIDU_SESSIONS_GARBAGE_INTERVAL' to 0) this property is ignored OPENVIDU_SESSIONS_GARBAGE_THRESHOLD=3600 -# All sessions of OpenVidu will try to force this codec. If OPENVIDU_ALLOW_TRANSCODING=true -# when a codec can not be forced, transcoding will be allowed -# Default value is VP8 -# OPENVIDU_FORCED_CODEC=VP8 - -# Allow transcoding if codec specified in OPENVIDU_FORCED_CODEC can not be applied -# Default value is false -# OPENVIDU_ALLOW_TRANSCODING=false - # Call Detail Record enabled # Whether to enable Call Detail Record or not # Values: true | false diff --git a/openvidu-server/src/main/java/io/openvidu/server/config/OpenviduConfig.java b/openvidu-server/src/main/java/io/openvidu/server/config/OpenviduConfig.java index 2ff20a73..53b7a437 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/config/OpenviduConfig.java +++ b/openvidu-server/src/main/java/io/openvidu/server/config/OpenviduConfig.java @@ -523,8 +523,8 @@ public class OpenviduConfig { openviduSessionsGarbageInterval = asNonNegativeInteger("OPENVIDU_SESSIONS_GARBAGE_INTERVAL"); openviduSessionsGarbageThreshold = asNonNegativeInteger("OPENVIDU_SESSIONS_GARBAGE_THRESHOLD"); - openviduForcedCodec = asEnumValue("OPENVIDU_FORCED_CODEC", VideoCodec.class); - openviduAllowTranscoding = asBoolean("OPENVIDU_ALLOW_TRANSCODING"); + openviduForcedCodec = asEnumValue("OPENVIDU_STREAMS_FORCED_VIDEO_CODEC", VideoCodec.class); + openviduAllowTranscoding = asBoolean("OPENVIDU_STREAMS_ALLOW_TRANSCODING"); kmsUrisList = checkKmsUris(); diff --git a/openvidu-server/src/main/java/io/openvidu/server/rest/ConfigRestController.java b/openvidu-server/src/main/java/io/openvidu/server/rest/ConfigRestController.java index 39819d1d..9c1d1e2f 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/rest/ConfigRestController.java +++ b/openvidu-server/src/main/java/io/openvidu/server/rest/ConfigRestController.java @@ -114,10 +114,10 @@ public class ConfigRestController { json.addProperty("OPENVIDU_STREAMS_VIDEO_MIN_RECV_BANDWIDTH", openviduConfig.getVideoMinRecvBandwidth()); json.addProperty("OPENVIDU_STREAMS_VIDEO_MAX_SEND_BANDWIDTH", openviduConfig.getVideoMaxSendBandwidth()); json.addProperty("OPENVIDU_STREAMS_VIDEO_MIN_SEND_BANDWIDTH", openviduConfig.getVideoMinSendBandwidth()); + json.addProperty("OPENVIDU_STREAMS_FORCED_VIDEO_CODEC", openviduConfig.getOpenviduForcedCodec().name()); + json.addProperty("OPENVIDU_STREAMS_ALLOW_TRANSCODING", openviduConfig.isOpenviduAllowingTranscoding()); json.addProperty("OPENVIDU_SESSIONS_GARBAGE_INTERVAL", openviduConfig.getSessionGarbageInterval()); json.addProperty("OPENVIDU_SESSIONS_GARBAGE_THRESHOLD", openviduConfig.getSessionGarbageThreshold()); - json.addProperty("OPENVIDU_FORCED_CODEC", openviduConfig.getOpenviduForcedCodec().name()); - json.addProperty("OPENVIDU_ALLOW_TRANSCODING", openviduConfig.isOpenviduAllowingTranscoding()); json.addProperty("OPENVIDU_RECORDING", openviduConfig.isRecordingModuleEnabled()); if (openviduConfig.isRecordingModuleEnabled()) { json.addProperty("OPENVIDU_RECORDING_VERSION", openviduConfig.getOpenViduRecordingVersion()); diff --git a/openvidu-server/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/openvidu-server/src/main/resources/META-INF/additional-spring-configuration-metadata.json index dce0977b..c8e43ba3 100644 --- a/openvidu-server/src/main/resources/META-INF/additional-spring-configuration-metadata.json +++ b/openvidu-server/src/main/resources/META-INF/additional-spring-configuration-metadata.json @@ -147,6 +147,18 @@ "description": "Minimum video bandwidth sent from OpenVidu Server to clients, in kbps. 0 means unconstrained", "defaultValue": 300 }, + { + "name": "OPENVIDU_STREAMS_FORCED_VIDEO_CODEC", + "type": "java.lang.Integer", + "description": "Defines which video codec is being forced to be used in the browser/client", + "defaultValue": "VP8" + }, + { + "name": "OPENVIDU_STREAMS_ALLOW_TRANSCODING", + "type": "java.lang.Integer", + "description": "Defines if transcoding is allowed or not when OPENVIDU_STREAMS_FORCED_VIDEO_CODEC is not a compatible codec with the browser/client.", + "defaultValue": false + }, { "name": "OPENVIDU_SESSIONS_GARBAGE_INTERVAL", "type": "java.lang.Integer", @@ -159,18 +171,6 @@ "description": "Minimum time in seconds that a non active session must have been in existence for the garbage collector of non active sessions to remove it. Default to 3600s (1 hour). If non active sessions garbage collector is disabled (property 'OPENVIDU_SESSIONS_GARBAGE_INTERVAL' to 0) this property is ignored", "defaultValue": 3600 }, - { - "name": "OPENVIDU_FORCED_CODEC", - "type": "java.lang.Integer", - "description": "Defines which video codec is being forced to be used in the browser/client", - "defaultValue": "VP8" - }, - { - "name": "OPENVIDU_ALLOW_TRANSCODING", - "type": "java.lang.Integer", - "description": "Defines if transcoding is allowed or not when OPENVIDU_FORCED_CODEC is not a compatible codec with the browser/client.", - "defaultValue": false - }, { "name": "COTURN_IP", "type": "java.lang.String", diff --git a/openvidu-server/src/main/resources/application.properties b/openvidu-server/src/main/resources/application.properties index ba2be1af..6730ecb7 100644 --- a/openvidu-server/src/main/resources/application.properties +++ b/openvidu-server/src/main/resources/application.properties @@ -41,13 +41,12 @@ OPENVIDU_STREAMS_VIDEO_MAX_RECV_BANDWIDTH=1000 OPENVIDU_STREAMS_VIDEO_MIN_RECV_BANDWIDTH=300 OPENVIDU_STREAMS_VIDEO_MAX_SEND_BANDWIDTH=1000 OPENVIDU_STREAMS_VIDEO_MIN_SEND_BANDWIDTH=300 +OPENVIDU_STREAMS_FORCED_VIDEO_CODEC=VP8 +OPENVIDU_STREAMS_ALLOW_TRANSCODING=false OPENVIDU_SESSIONS_GARBAGE_INTERVAL=900 OPENVIDU_SESSIONS_GARBAGE_THRESHOLD=3600 -OPENVIDU_FORCED_CODEC=VP8 -OPENVIDU_ALLOW_TRANSCODING=false - COTURN_REDIS_IP=127.0.0.1 COTURN_REDIS_DBNAME=0 COTURN_REDIS_PASSWORD=turn diff --git a/openvidu-server/src/test/resources/integration-test.properties b/openvidu-server/src/test/resources/integration-test.properties index db323402..0f544417 100644 --- a/openvidu-server/src/test/resources/integration-test.properties +++ b/openvidu-server/src/test/resources/integration-test.properties @@ -36,13 +36,12 @@ OPENVIDU_STREAMS_VIDEO_MAX_RECV_BANDWIDTH=1000 OPENVIDU_STREAMS_VIDEO_MIN_RECV_BANDWIDTH=300 OPENVIDU_STREAMS_VIDEO_MAX_SEND_BANDWIDTH=1000 OPENVIDU_STREAMS_VIDEO_MIN_SEND_BANDWIDTH=300 +OPENVIDU_STREAMS_FORCED_VIDEO_CODEC=VP8 +OPENVIDU_STREAMS_ALLOW_TRANSCODING=false OPENVIDU_SESSIONS_GARBAGE_INTERVAL=900 OPENVIDU_SESSIONS_GARBAGE_THRESHOLD=3600 -OPENVIDU_FORCED_CODEC=VP8 -OPENVIDU_ALLOW_TRANSCODING=false - COTURN_REDIS_IP=127.0.0.1 COTURN_REDIS_DBNAME=0 COTURN_REDIS_PASSWORD=turn diff --git a/openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/AbstractOpenViduTestAppE2eTest.java b/openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/AbstractOpenViduTestAppE2eTest.java index bfe0f488..3c0f421b 100644 --- a/openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/AbstractOpenViduTestAppE2eTest.java +++ b/openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/AbstractOpenViduTestAppE2eTest.java @@ -235,8 +235,8 @@ public class AbstractOpenViduTestAppE2eTest { protected static void getDefaultTranscodingValues() throws Exception { CustomHttpClient restClient = new CustomHttpClient(OPENVIDU_URL, "OPENVIDUAPP", OPENVIDU_SECRET); JsonObject ovConfig = restClient.rest(HttpMethod.GET, "/openvidu/api/config", HttpStatus.SC_OK); - defaultForcedVideoCodec = VideoCodec.valueOf(ovConfig.get("OPENVIDU_FORCED_CODEC").getAsString()); - defaultAllowTranscoding = ovConfig.get("OPENVIDU_ALLOW_TRANSCODING").getAsBoolean(); + defaultForcedVideoCodec = VideoCodec.valueOf(ovConfig.get("OPENVIDU_STREAMS_FORCED_VIDEO_CODEC").getAsString()); + defaultAllowTranscoding = ovConfig.get("OPENVIDU_STREAMS_ALLOW_TRANSCODING").getAsBoolean(); } @AfterEach diff --git a/openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/OpenViduTestAppE2eTest.java b/openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/OpenViduTestAppE2eTest.java index 68323e34..f08c18d9 100644 --- a/openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/OpenViduTestAppE2eTest.java +++ b/openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/OpenViduTestAppE2eTest.java @@ -3084,9 +3084,9 @@ public class OpenViduTestAppE2eTest extends AbstractOpenViduTestAppE2eTest { /** GET /openvidu/api/config **/ restClient.rest(HttpMethod.GET, "/openvidu/api/config", null, HttpStatus.SC_OK, true, false, true, "{'VERSION':'STR','DOMAIN_OR_PUBLIC_IP':'STR','HTTPS_PORT':0,'OPENVIDU_PUBLICURL':'STR','OPENVIDU_CDR':false,'OPENVIDU_STREAMS_VIDEO_MAX_RECV_BANDWIDTH':0,'OPENVIDU_STREAMS_VIDEO_MIN_RECV_BANDWIDTH':0," - + "'OPENVIDU_STREAMS_VIDEO_MAX_SEND_BANDWIDTH':0,'OPENVIDU_STREAMS_VIDEO_MIN_SEND_BANDWIDTH':0,'OPENVIDU_SESSIONS_GARBAGE_INTERVAL':0,'OPENVIDU_SESSIONS_GARBAGE_THRESHOLD':0," - + "'OPENVIDU_FORCED_CODEC':'STR','OPENVIDU_ALLOW_TRANSCODING':false,'OPENVIDU_RECORDING':false,'OPENVIDU_RECORDING_VERSION':'STR','OPENVIDU_RECORDING_PATH':'STR','OPENVIDU_RECORDING_PUBLIC_ACCESS':false,'OPENVIDU_RECORDING_NOTIFICATION':'STR'," - + "'OPENVIDU_RECORDING_CUSTOM_LAYOUT':'STR','OPENVIDU_RECORDING_AUTOSTOP_TIMEOUT':0,'OPENVIDU_WEBHOOK':false,'OPENVIDU_WEBHOOK_ENDPOINT':'STR','OPENVIDU_WEBHOOK_HEADERS':[]," + + "'OPENVIDU_STREAMS_VIDEO_MAX_SEND_BANDWIDTH':0,'OPENVIDU_STREAMS_VIDEO_MIN_SEND_BANDWIDTH':0,'OPENVIDU_STREAMS_FORCED_VIDEO_CODEC':'STR','OPENVIDU_STREAMS_ALLOW_TRANSCODING':false,'OPENVIDU_SESSIONS_GARBAGE_INTERVAL':0," + + "'OPENVIDU_RECORDING':false,'OPENVIDU_RECORDING_VERSION':'STR','OPENVIDU_RECORDING_PATH':'STR','OPENVIDU_RECORDING_PUBLIC_ACCESS':false,'OPENVIDU_RECORDING_NOTIFICATION':'STR'," + + "'OPENVIDU_SESSIONS_GARBAGE_THRESHOLD':0,'OPENVIDU_RECORDING_CUSTOM_LAYOUT':'STR','OPENVIDU_RECORDING_AUTOSTOP_TIMEOUT':0,'OPENVIDU_WEBHOOK':false,'OPENVIDU_WEBHOOK_ENDPOINT':'STR','OPENVIDU_WEBHOOK_HEADERS':[]," + "'OPENVIDU_WEBHOOK_EVENTS':[]}"); /** POST /openvidu/api/sessions (default transcoding parameters) **/