summaryrefslogtreecommitdiff
path: root/background.js
diff options
context:
space:
mode:
authorJibon Costa <jiboncosta57@gmail.com>2020-03-28 16:38:08 +0600
committerJibon Costa <jiboncosta57@gmail.com>2020-03-28 16:38:08 +0600
commitb15978e75643ce6c216e81f0e0efc11aab0be084 (patch)
tree41f64eda3549609ecba6a44fe4b4f9d7780607e6 /background.js
parent81e67d3be90c46910123b30bc07cab3688c041fb (diff)
downloadbbb-recorder-b15978e75643ce6c216e81f0e0efc11aab0be084.tar.gz
bbb-recorder-b15978e75643ce6c216e81f0e0efc11aab0be084.zip
Live RTMP broadcasting
Diffstat (limited to 'background.js')
-rw-r--r--background.js22
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'
});