diff options
| author | Jibon Costa <jiboncosta57@gmail.com> | 2020-03-28 16:38:08 +0600 |
|---|---|---|
| committer | Jibon Costa <jiboncosta57@gmail.com> | 2020-03-28 16:38:08 +0600 |
| commit | b15978e75643ce6c216e81f0e0efc11aab0be084 (patch) | |
| tree | 41f64eda3549609ecba6a44fe4b4f9d7780607e6 /background.js | |
| parent | 81e67d3be90c46910123b30bc07cab3688c041fb (diff) | |
| download | bbb-recorder-b15978e75643ce6c216e81f0e0efc11aab0be084.tar.gz bbb-recorder-b15978e75643ce6c216e81f0e0efc11aab0be084.zip | |
Live RTMP broadcasting
Diffstat (limited to 'background.js')
| -rw-r--r-- | background.js | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/background.js b/background.js index cb2fb8b..253e81e 100644 --- a/background.js +++ b/background.js @@ -2,6 +2,8 @@ let recorder = null; let filename = null; +let ws; +let liveSteam = false; chrome.runtime.onConnect.addListener(port => { port.onMessage.addListener(msg => { @@ -10,11 +12,20 @@ chrome.runtime.onConnect.addListener(port => { case 'SET_EXPORT_PATH': filename = msg.filename break + case 'FFMPEG_SERVER': + let ffmpegServer = msg.ffmpegServer + ws = new WebSocket(ffmpegServer); + liveSteam = true; + break case 'REC_STOP': recorder.stop() break case 'REC_START': - recorder.start(); + if(liveSteam){ + recorder.start(1000); + }else{ + recorder.start(); + } break case 'REC_CLIENT_PLAY': if(recorder){ @@ -42,7 +53,7 @@ chrome.runtime.onConnect.addListener(port => { } } }, stream => { - var chunks=[]; + var chunks = []; recorder = new MediaRecorder(stream, { videoBitsPerSecond: 2500000, ignoreMutedMedia: true, @@ -51,10 +62,17 @@ chrome.runtime.onConnect.addListener(port => { recorder.ondataavailable = function (event) { if (event.data.size > 0) { chunks.push(event.data); + if(liveSteam){ + ws.send(event.data); + } } }; recorder.onstop = function () { + if(liveSteam){ + ws.close(); + } + var superBuffer = new Blob(chunks, { type: 'video/webm' }); |
