2015-04-17 118 views
2

我正在尝试从网络摄像头录制音频和视频。我偶然发现HTML5 getUserMedia,并进一步谷歌搜索导致我WebRTC [哦!这真的很酷]。WebRTC:Chrome不记录视频/音频

我实现了它,它在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

回答

3

我已经做了一些关于这个话题的研究,在这一刻,没有办法得到一个包含音频和视频的单个记录文件。原因是,它可以在Firefox中完成MediaRecorder API

我没有使用过RecordRTC,但怀疑它在内部使用whammy.js代替webm录制,使用recorderjs代替wav录制。

因此,对于铬的最简​​单的解决方法是:

  1. 录制视频为webm使用的RecordRTC第一个实例。
  2. 使用第二个实例RecordRTC记录听众为wav
  3. 同时上传到服务器并使用ffmpeg合并它们。
  4. 提供一个链接,让用户访问合并文件。