RecordRTC录制崩溃

时间:2016-02-15 03:32:44

标签: php html webrtc video-recording

根据RecordRTC作者,chrome> =版本49已经支持mediarecorder api

我下载了50版以测试功能。

任何录音< 5分钟导致铬金丝雀崩溃。我该如何解决这个问题?

audioRecorder = RecordRTC(stream, {
                    recorderType: StereoAudioRecorder,
                    bufferSize: 16384,  // mandatory: if 720p output is forced. otherwise: optional default buffersize 16384
                    //sampleRate: 22050, // default samplerate 48000
                });

                videoRecorder = RecordRTC(stream, {
                    type: 'video', 
                    frameInterval: 90,
                    canvas:  {
                              width: 1280,
                              height: 720
                    }
                });

                videoRecorder.initRecorder(function() {
                    audioRecorder.initRecorder(function() {
                        audioRecorder.startRecording();
                        videoRecorder.startRecording();
                    });
                });

2 个答案:

答案 0 :(得分:1)

请转到chrome://崩溃并从崩溃中提供的链接中提交错误,以便在Chrome Canary稳定之前解决问题。似乎还有一些问题,请参阅here

答案 1 :(得分:1)

使用 Chrome Canary或Beta版>=50。启用此标记:chrome://flags/#enable-experimental-web-platform-features

现在试试这个RecordRTC片段:

var audioVideoRecorder = RrecordRTC(yourStream, {
    type: 'video'
});
audioVideoRecorder.startRecording();

现在,您不仅可以获得音频/视频曲目的单一WebM,而且您还可以记录最少10到15分钟的录制而不会发生任何崩溃

如果你想记录最长的流,那么你可能想尝试一下:

于2016年3月3日更新

以下是如何使用MediaRecorder API记录更长的流(因为RecordRTC目前似乎无法记录更长的流):

var recorder = new MediaRecorder(yourStream, {
    mimeType: 'video/webm'
});

recorder.ondataavailable = function(e) {
   if(!e || !e.data || !e.data.size) throw 'Failed.';

   yourVideo.src = URL.createObjectURL(e.data);
   // UploadToServer(e.data);
};

recorder.start(3600000); // record 60 minutes video

您甚至可以随时使用recorder.stop停止;或recorder.pause暂停录制。