WebRTC:Chrome 未录制 video/audio

WebRTC : Chrome not recording video/audio

我正在尝试从网络摄像头录制音频和视频。我偶然发现HTML5 getUserMedia and further googling led me to WebRTC [哦!顺便说一下,这真的很酷。

我实现了它,它在 firefox 上运行良好,能够录制音频和视频 perfectly.But 在 chrome 上,根据传递的配置,录制音频或视频。进一步谷歌搜索让我找到 ,它清楚地表明一个线程阻塞了另一个。现在我看到了 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 显示 video/webm for firefox 和 audio/wav for Chrome.

这清楚地表明一个人正在阻止另一个人。是否有任何解决方案可以记录两者或我缺少的任何其他 javascript 应该添加以使其工作。

更新: 正如 @mido22 在下面建议的那样,这是解决方法。 Link 可以找到 here.

我对这个话题做了一些研究,目前还没有办法得到一个包含音频和视频的录制文件。可以在 firefox 中完成的原因是 MediaRecorder API

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

所以 chrome 最简单的解决方案是:

  1. 使用 RecordRTC 的第一个实例将视频录制为 webm
  2. 使用 RecordRTC 的第二个实例将 audip 录制为 wav
  3. 将两者上传到服务器并使用 ffmpeg 合并它们。
  4. 提供一个 link,使用户能够访问合并的文件。