Javascript 使用RecordRTC进行间隔视频录制

Javascript 使用RecordRTC进行间隔视频录制,javascript,webrtc,mediarecorder,recordrtc,Javascript,Webrtc,Mediarecorder,Recordrtc,现在我制作了一个直播流,我需要录制这个流,我的计划是录制3秒,然后停止并上传到我的服务器,重新运行这个功能,直到点击停止按钮后停止这个功能,然后将所有记录绑定到一个视频中,所有东西都正常工作,但我在最后一段视频中注意到,在每次录制和另一次录制之间,有一些毫秒没有录制,这意味着在停止和重新开始录制时,一些毫秒会丢失,这表明此视频是从多个部分编译而来的,而不是作为一个部分,这是我的问题 我在记录和另一个记录之间丢失的毫秒内的问题如何避免此问题,或者正确的方法是什么? 我使用RecordRTC进行录制

现在我制作了一个直播流,我需要录制这个流,我的计划是录制3秒,然后停止并上传到我的服务器,重新运行这个功能,直到点击停止按钮后停止这个功能,然后将所有记录绑定到一个视频中,所有东西都正常工作,但我在最后一段视频中注意到,在每次录制和另一次录制之间,有一些毫秒没有录制,这意味着在停止和重新开始录制时,一些毫秒会丢失,这表明此视频是从多个部分编译而来的,而不是作为一个部分,这是我的问题

我在记录和另一个记录之间丢失的毫秒内的问题如何避免此问题,或者正确的方法是什么?

我使用RecordRTC进行录制,使用ffmpeg进行绑定

let counter = 1,
    recorder,
navigator.mediaDevices.getUserMedia({
    video: true,
    audio: true
}).then(function(stream) {
    (async function lopper() {
        recorder = RecordRTC(stream, {
            type: 'video',
            mimeType: 'video/webm;codecs=vp9',
            recorderType: MediaStreamRecorder,
            disableLogs: true,
        });
        recorder.startRecording();
    
        const sleep = m => new Promise(r => setTimeout(r, m));
        await sleep(3000);
    
        recorder.stopRecording(function() {
            let blob        = recorder.getBlob()
                formData    = new FormData();
            formData.append('file', blob, 'file_'+counter+'.webm');

            $.ajax({
                url: '/path/to/upload-live-stream',
                method: 'POST',
                data: formData,
                async: true,
                dataType: 'json',
                contentType: false,
                processData: false,
                success: function (data) {
                    console.log(data)
                },
        
            })
    
            lopper()
            counter++
        });
    })();
}).catch((msg)=>{
    console.error(msg)
});