使用RecordRTC录制远程webrtc流

时间:2013-07-04 16:40:32

标签: webrtc web-audio opentok

我正在使用Opentok JavaScript WebRTC库来托管1对1视频聊天(点对点)。 我可以看到我的同伴的视频,并完美地听到音频。

我的愿望是录制其他聊天方(远程)的音频/视频。为此,我正在使用RecordRTC。 我能够录制其他聊天参与者的视频(视频输出到HTML视频元素),但到目前为止,我还没有成功录制音频(死音静音.wav文件是我能得到的)。使用Chrome Canary(30.0.1554.0)。这是我的方法:

var clientVideo = $('#peerdiv video')[0];//peer's video (html element)
var serverVideo = $('#myselfdiv video')[0];//my video (html element)

var context = new webkitAudioContext();
var clientStream = context.createMediaStreamSource(clientVideo.webRTCStream);
var serverStream = context.createMediaStreamSource(serverVideo.webRTCStream);

webRTCStream是我通过修改opentok js库的源来分配给HTMLVideoElement对象的自定义属性。它包含链接到各自的MediaStream对象。视频>元件。

var recorder = RecordRTC({
                    video: clientVideo,
                    stream: clientStream
                });
recorder.recordAudio();
recorder.recordVideo();

录制视频。音频文件也被创建,它的长度接近视频的长度,然而,它是完全静音的(是的,在录制过程中,另一边有很多噪音)

我用视频元素对其进行了测试,该视频元素显示了我的网络摄像头的视频流(和音频),并且它有效:录制了音频和视频:

...
var recorder = RecordRTC({
                    video: serverVideo,
                    stream: serverStream
                });
...

源自远程位置的流有什么特别之处吗?关于这个问题的任何指导都会非常有帮助。

3 个答案:

答案 0 :(得分:7)

以下情况也是如此......

  1. 如果不是立体声音频(双声道音频)......即它是单声道音频
  2. 如果音频输入通道不等于音频输出通道
  3. 如果音频输入设备不是Chrome上选择的默认设备
  4. 我仍在努力寻找实际问题。

    我添加了此实验用于测试目的...请参阅控制台...

    https://webrtc-experiment.appspot.com/demos/remote-stream-recording.html

    更新于: 2014年2月1日星期六,09:22:04 PKT

    不支持远程录音;这个问题被认为是低优先级的wontfix:

    1. Support feeding remote WebRTC MediaStreamTrack output to WebAudio
    2. Connect WebRTC MediaStreamTrack output to Web Audio API
    3. 于2016年3月28日更新

      远程音频+视频录制在RecordRTC中现在支持,因为 Chrome版本49 +

      另一方面,Firefox只能录制远程音频。

答案 1 :(得分:2)

如果Chrome / WebRTC / Opus默认输出单声道音频,如果这是问题,我会看到两种选择:

  1. 通过制作opus输出立体声 - 不确定如何。
  2. 使RecordRTC / Recorderjs代码与mono
  3. 一起使用

    或者有没有人知道其他任何有效的录音库?

答案 2 :(得分:0)

这实际上现在在Firefox中运行良好。我正在使用FireFox 29.0.1,AudioAPI现在可以使用从对等连接从远程方获取的音频流源。

要测试转到Muaz Khan's experiment page。我不确定推出的是什么版本的Firefox,但我要感谢团队的发展!

Chrome错误已移至AudioAPI小组cr bug to track progress