запись удаленного потока webrtc с помощью RecordRTC
Я использую библиотеку Opentok JavaScript WebRTC для размещения видеочата 1-к-1 (peer-to-peer). Я могу видеть видео моего сверстника и слышать аудио безупречно.
Мое желание состоит в том, чтобы сделать запись аудио / видео другого участника чата (удаленного). Для этого я использую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 - это пользовательское свойство, которое я назначил объекту HTMLVideoElement, изменив источник js-библиотеки opentok. Он содержит объект MediaStream, связанный с соответствующим элементом <video>.
var recorder = RecordRTC({
video: clientVideo,
stream: clientStream
});
recorder.recordAudio();
recorder.recordVideo();
Видео записано. Аудио файл также создается, его длина близка к длине видео, однако он совершенно бесшумный (и да, с другой стороны во время записи было много шума)
Я протестировал это с элементом video, который отображает видеопоток моей веб-камеры (и аудио), и он работал: были записаны как аудио, так и видео:
...
var recorder = RecordRTC({
video: serverVideo,
stream: serverStream
});
...
Есть ли что-то особенное в потоках, происходящих из удаленного местоположения? Любое руководство по этому вопросу было бы очень полезно.