diff --git a/web-service/public/js/bundle.js b/web-service/public/js/bundle.js index 151c250538f1c13dcac921b01b1e811cfde6556a..65d67c028e8ae6ee0975fe14e9bc9326a94de0e1 100644 --- a/web-service/public/js/bundle.js +++ b/web-service/public/js/bundle.js @@ -122,25 +122,35 @@ webSocketTest = () => { connectToStream = () => { const element = document.getElementById('ftlab-stream-video'); - const converter = new VideoConverter.default(element, 20, 6); + let converter = null; let rxcount = 0; + let ts = 0; + let dts = 0; peer.bind(current_data.uri, (latency, streampckg, pckg) => { - console.log("Packet", pckg[0]); if(pckg[0] === 2){ rxcount++; if (rxcount >= 25) { rxcount = 0; - console.log("RESEND"); peer.send(current_data.uri, 0, [1,0,255,0],[255,7,35,0,0,Buffer.alloc(0)]); //peer.send(current_data.uri, 0, [255,7,35,0,0,Buffer.alloc(0)], [1,0,255,0]); } - function decode(value){ - converter.appendRawData(value); + + if (converter) { + function decode(value){ + converter.appendRawData(value); + } + decode(pckg[5]); + converter.play(); + } else { + if (ts > 0) { + dts = streampckg[0] - ts; + console.log("Framerate = ", 1000/dts); + converter = new VideoConverter.default(element, 1000/dts, 6); + } + ts = streampckg[0]; } - decode(pckg[5]); - converter.play(); }; }) diff --git a/web-service/public/js/index.js b/web-service/public/js/index.js index 35aca436e209d004bc53a7b51ed0794d0c2e62b1..b48e75333e3cc10afc4830bc2349a8f0ca65e74c 100644 --- a/web-service/public/js/index.js +++ b/web-service/public/js/index.js @@ -120,9 +120,11 @@ webSocketTest = () => { connectToStream = () => { const element = document.getElementById('ftlab-stream-video'); - const converter = new VideoConverter.default(element, 20, 6); + let converter = null; let rxcount = 0; + let ts = 0; + let dts = 0; peer.bind(current_data.uri, (latency, streampckg, pckg) => { if(pckg[0] === 2){ @@ -132,11 +134,21 @@ connectToStream = () => { peer.send(current_data.uri, 0, [1,0,255,0],[255,7,35,0,0,Buffer.alloc(0)]); //peer.send(current_data.uri, 0, [255,7,35,0,0,Buffer.alloc(0)], [1,0,255,0]); } - function decode(value){ - converter.appendRawData(value); + + if (converter) { + function decode(value){ + converter.appendRawData(value); + } + decode(pckg[5]); + converter.play(); + } else { + if (ts > 0) { + dts = streampckg[0] - ts; + console.log("Framerate = ", 1000/dts); + converter = new VideoConverter.default(element, 1000/dts, 6); + } + ts = streampckg[0]; } - decode(pckg[5]); - converter.play(); }; })