使用RecordRTC录制远程webrtc流

ski*_*ius 7 webrtc opentok web-audio-api

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

我的愿望是录制其他聊天方(远程)的音频/视频.为此,我正在使用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);
Run Code Online (Sandbox Code Playgroud)

webRTCStream是我通过修改opentok js库的源来分配给HTMLVideoElement对象的自定义属性.它包含链接到相应<video>元素的MediaStream对象.

var recorder = RecordRTC({
                    video: clientVideo,
                    stream: clientStream
                });
recorder.recordAudio();
recorder.recordVideo();
Run Code Online (Sandbox Code Playgroud)

录制视频.音频文件也被创建,它的长度接近视频的长度,然而,它是完全静音的(是的,录制期间在另一侧产生了很多噪音)

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

...
var recorder = RecordRTC({
                    video: serverVideo,
                    stream: serverStream
                });
...
Run Code Online (Sandbox Code Playgroud)

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

Mua*_*han 7

这是在以下情况下发生的同样问题......

  1. 如果不是立体声音频(双声道音频)......即它是单声道音频
  2. 如果音频输入通道不等于音频输出通道
  3. 如果音频输入设备不是Chrome上选择的默认设备

我仍在努力寻找实际问题.

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

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

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

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

  1. 支持将远程WebRTC MediaStreamTrack输出提供给WebAudio
  2. 将WebRTC MediaStreamTrack输出连接到Web Audio API

2016年3月28日更新

Chrome版本49+以来,RecordRTC 现在支持远程音频+视频录制.

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