WebRTC:Chrome不录制视频/音频

时间:2015-04-17 05:01:27

标签: javascript html5 audio video webrtc

我正在尝试从网络摄像头录制音频和视频。我偶然发现了HTML5 getUserMedia并进一步谷歌搜索引导我WebRTC [哦!顺便说一句,这真的很酷。

我实现了它并且在firefox上工作正常,能够完美地录制音频和视频。但是在Chrome上,音频或视频会根据传递的配置进行录制。进一步的谷歌搜索引导我this post,这清楚地表明一个线程阻挡了另一个线程。现在我已经看到了用于同时演示音频视频捕获的chrome的演示。

这就是我的代码:

// Start recording
captureUserMedia(function(stream) {
                    localStream = stream;
                    window.audioVideoRecorder = window.RecordRTC(stream, {
                        type : 'video/webm'
                    });
                    window.audioVideoRecorder.startRecording();
                });

// Stop recording
window.audioVideoRecorder.stopRecording(function(url) {
                    videoElement.src = url;

                    videoElement.onended = function() {
                        videoElement.pause();
                        videoElement.src = URL.createObjectURL(audioVideoRecorder.getBlob());
                    };
                });

以上代码用于在按钮点击时启动和录制媒体。 记录控制台后记录后回来的blob显示firefox为video/webm,Chrome为audio/wav

这清楚地表明一个人正阻挡另一个人。是否有任何解决方案用于记录我想要的两个或任何其他javascript,以使其工作。

更新 正如下面提到的@ mido22那样是解决方法。可以找到here链接。

1 个答案:

答案 0 :(得分:3)

我已经对这个主题做了一些研究,此时,没有办法获得包含音频和视频的单个录制文件。原因是,它可以在firefox中完成MediaRecorder API

我没有使用过RecordRTC,但怀疑在内部,他们使用whammy.js进行webm录制,recorderjs进行wav录制。

因此,最简单的chrome解决方案是:

  1. 使用webm的第一个实例将视频记录为RecordRTC
  2. 使用wav的第二个实例将审核记录为RecordRTC
  3. 将两者上传到服务器并使用ffmpeg合并它们。
  4. 提供一个链接,使用户可以访问合并文件。