diff --git a/labs/bbb-webrtc-sfu/config/default.example.yml b/labs/bbb-webrtc-sfu/config/default.example.yml index 74b355f0d3ce17e9ba68704e015055a96ee16ef7..d2bed69b328d51e2f17ff5affa8860774013925c 100644 --- a/labs/bbb-webrtc-sfu/config/default.example.yml +++ b/labs/bbb-webrtc-sfu/config/default.example.yml @@ -15,6 +15,8 @@ to-video: "to-video-sfu" from-audio: "from-audio-sfu" to-audio: "to-audio-sfu" to-akka: "to-akka-apps-redis-channel" +webcam-force-h264: true +screenshare-force-h264: true log: filename: '/var/log/bbb-webrtc-sfu/bbb-webrtc-sfu.log' diff --git a/labs/bbb-webrtc-sfu/lib/screenshare/screenshare.js b/labs/bbb-webrtc-sfu/lib/screenshare/screenshare.js index 9553bc1c30ee650b1faee2d6cb7b481e0cede273..d0758467158ff8f079527515ef158c2a64c96926 100644 --- a/labs/bbb-webrtc-sfu/lib/screenshare/screenshare.js +++ b/labs/bbb-webrtc-sfu/lib/screenshare/screenshare.js @@ -17,6 +17,7 @@ const MCSApi = require('../mcs-core/lib/media/MCSApiStub'); const config = require('config'); const kurentoIp = config.get('kurentoIp'); const localIpAddress = config.get('localIpAddress'); +const FORCE_H264 = config.get('screenshare-force-h264'); const EventEmitter = require('events').EventEmitter; const Logger = require('../utils/Logger'); @@ -163,7 +164,10 @@ module.exports = class Screenshare extends EventEmitter { let _callback = callback; // Force H264 on Firefox and Chrome - sdpOffer = h264_sdp.transform(sdpOffer); + if (FORCE_H264) { + sdpOffer = h264_sdp.transform(sdpOffer); + } + Logger.info("[screenshare] Starting presenter", id , "at session", this._voiceBridge); try { @@ -223,13 +227,15 @@ module.exports = class Screenshare extends EventEmitter { } } - async _startViewer(connectionId, voiceBridge, sdp, callerName, presenterEndpoint, callback) { + async _startViewer(connectionId, voiceBridge, sdp, callerName, presenterEndpoint, callback) { Logger.info("[screenshare] Starting viewer", callerName, "for voiceBridge", this._voiceBridge); // TODO refactor the callback handling let _callback = function(){}; let sdpAnswer, sdpOffer; - sdpOffer = h264_sdp.transform(sdp); + if (FORCE_H264) { + sdpOffer = h264_sdp.transform(sdp); + } sdpOffer = sdp; this._viewersCandidatesQueue[callerName] = []; diff --git a/labs/bbb-webrtc-sfu/lib/video/video.js b/labs/bbb-webrtc-sfu/lib/video/video.js index 03181201f172c5dbb8446fcf0ba7a96274f45ac0..f8ea11e826eb53b3711d459c8297917201e3c914 100644 --- a/labs/bbb-webrtc-sfu/lib/video/video.js +++ b/labs/bbb-webrtc-sfu/lib/video/video.js @@ -7,6 +7,7 @@ const C = require('../bbb/messages/Constants'); const Logger = require('../utils/Logger'); const Messaging = require('../bbb/messages/Messaging'); const h264_sdp = require('../h264-sdp'); +const FORCE_H264 = config.get('webcam-force-h264'); const EventEmitter = require('events').EventEmitter; var sharedWebcams = {}; @@ -142,7 +143,10 @@ module.exports = class Video extends EventEmitter { let sdpAnswer; // Force H264 - sdpOffer = h264_sdp.transform(sdpOffer); + if (FORCE_H264) { + Logger.info("AAAAAA FORCING H@264"); + sdpOffer = h264_sdp.transform(sdpOffer); + } try { this.userId = await this.mcs.join(this.meetingId, 'SFU', {});