Могу ли я использовать какое-то локальное хранилище в качестве временного хранилища для getUserMedia для почти реального времени?

У меня есть вариант использования, который не требует общения в реальном времени, но настолько близко, насколько я могу его получить, чтобы убедиться, что моим пользователям не нужно вечно ждать загрузки файла постфактум. Наш сайт позволяет пользователям записывать видео и аудио, которые мы затем сохраняем на нашем сервере.

Я перешел с flash, потому что flash, на реализацию WebRTC с медиасервером Kurento. Это очень хорошо работает с высококачественным интернет-соединением, но этого недостаточно для пользователей с плохим подключением.

Я подумал, могу ли я каким-то образом реализовать небольшой буфер перед подачей на сервер, чтобы я мог компенсировать провалы в соединении, что было бы идеально. Я понимаю, что это не то, для чего предназначался WebRTC, что приводит к вопросу о том, есть ли другое решение, на которое я должен обратить внимание?

Любые предложения приветствуются и оцениваются! Спасибо!


person Ron    schedule 24.01.2016    source источник


Ответы (1)


Буфер не изменит характеристики WebRTC в реальном времени из-за низкой пропускной способности. Например, с видео WebRTC может снижать частоту кадров или разрешение, чтобы не отставать, но никто не предлагал снижать время доставки (отбрасывая режим реального времени). Однако у вас интересный вариант использования.

Вы можете использовать MediaRecorder. Это позволит вам записывать локально, а затем отправлять данные в виде больших двоичных объектов на сервер с помощью веб-сокетов или каналов данных.

Вот скрипт, который работает в Chrome (к сожалению, только для видео) и Firefox:

https://jsfiddle.net/tmwLxjLy

Он показывает простую запись, а затем воспроизведение видео через 5 секунд. Я оставлю это в качестве упражнения, чтобы изменить его, чтобы вызвать непрерывную 5-секундную задержку.

person jib    schedule 25.01.2016
comment
Спасибо, Джиб, это фантастический ответ! Я изучу MediaRecorder. Спасибо и за скрипку. - person Ron; 25.01.2016
comment
есть ли какая-либо причина, по которой мы можем контролировать эту частоту кадров, когда обнаружена сеть с потерями? - person Sagar Pilkhwal; 13.05.2016