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