запись удаленного потока webrtc с помощью RecordRTC

Я использую библиотеку Opentok JavaScript WebRTC для размещения видеочата 1-к-1 (одноранговый). Я могу видеть видео моего сверстника и слышать звук безупречно.

мое желание-записывать аудио / видео других чатов (удаленных). Для этой цели я использую RecordRTC. Мне удалось записать видео другого участника чата (видео выводится в HTML video element), но, до сих пор, мне не удалось записать аудио (мертвая тишина .wav-файл, насколько я мог получить.) Использование Chrome Canary (30.0.1554.0). Вот мой метод:--4-->

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, изменив источник библиотеки opentok js. Он содержит объект MediaStream, связанный с соответствующим элементом .

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

видео записывается. Аудиофайл также создается, он имеет длину, близкую к длине видео, однако он полностью бесшумный (и да, было много шума, производимого с другой стороны во время запись)

Я проверил это с помощью видеоэлемента, который отображает видеопоток моей веб-камеры (и аудио), и он работал: как аудио, так и видео были записаны:

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

есть ли что-то особенное в потоках, происходящих из удаленного места? Любые рекомендации по этому вопросу были бы весьма полезны.

3 ответов


эта же проблема возникает в следующих ситуациях...

  1. Если не стерео аудио (двухканальное аудио)...т. е. это моно аудио
  2. Если входные аудиоканалы не равны выходным аудиоканалам
  3. Если устройство ввода звука не является устройством по умолчанию, выбранным в chrome

Я все еще пытаюсь найти реальный вопрос.

Я добавил этот эксперимент для тестирования цели... видеть приставка...

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

Обновлено: Суббота, 1 февраля 2014, 09:22:04 ПКТ

удаленная запись звука не поддерживается; и эта проблема рассматривается как wontfix с низким приоритетом:

  1. поддержка подачи удаленного выхода WebRTC MediaStreamTrack в WebAudio
  2. подключение вывода WebRTC MediaStreamTrack к сети Аудио API

обновлено 28 марта 2016

пульт ДУ аудио+видео запись теперь поддерживаются в RecordRTC, так как Chrome версии 49+.

Firefox, с другой стороны, может просто записывать удаленное аудио.


Если Chrome / WebRTC / Opus выводит моно-аудио по умолчанию, и если это проблема здесь, я вижу два варианта в этом случае:

  1. сделав Opus выход стерео-не уверен, как.
  2. , сделав код RecordRTC / Recorderjs работать с mono

или кто-нибудь знает любую другую библиотеку записей, которая работает?


это на самом деле теперь отлично работает в Firefox. Я использую FireFox 29.0.1 и AudioAPI теперь может работать с источниками аудиопотоков, захваченных с удаленных сторон из однорангового соединения.

для проверки перейдите в страница эксперимента Муаз Хана. Я не уверен, с какой версией Firefox это развернулось, но я хотел бы поблагодарить команду за его проворачивание!

ошибка chrome была перемещена в команду AudioAPI cr ошибка для отслеживания прогресса