2016-01-24 50 views
5

Mam przypadek użycia, który nie wymaga dokładnie komunikacji w czasie rzeczywistym, ale tak blisko, jak tylko mogę go uzyskać, aby upewnić się, że moi użytkownicy nie muszą czekać na zawsze przesyłanie pliku po fakcie. Nasza strona pozwala użytkownikom nagrywać wideo i audio, które następnie przechowujemy na naszym serwerze.Czy mogę użyć lokalnego magazynu jako tymczasowego miejsca przechowywania dla getUserMedia dla prawie RTC?

Przeniosłem się z flasha, ponieważ flash, do implementacji WebRTC z serwerem mediów Kurento. Działa to bardzo dobrze z wysokiej jakości połączeniami internetowymi, ale jest stosunkowo mało dla użytkowników o słabej łączności.

Zastanawiałem się, czy mógłbym jakoś zaimplementować trochę bufora przed karmieniem serwera, abym mógł nadrobić spadki w łączności, która byłaby idealna. Rozumiem, że to nie jest to, co WebRTC było przeznaczone, co prowadzi do pytania, czy istnieje inne rozwiązanie, które powinienem zbadać?

Wszelkie sugestie są mile widziane i doceniane! Dzięki!

Odpowiedz

4

Bufor nie zmienia charakterystyki WebRTC w czasie rzeczywistym w obliczu niskiej przepustowości. Na przykład w przypadku wideo, WebRTC może pogarszać albo liczbę klatek na sekundę, albo rozdzielczość, aby nadążyć, ale nikt nie zaproponował obniżenia czasu dostawy (skrócenie czasu rzeczywistego). Twój jest jednak interesującym przypadkiem użycia. Można użyć MediaRecorder. Umożliwiłoby to nagrywanie lokalnie, a następnie wysłanie danych jako obiektów typu BLOB do serwera za pomocą stron internetowych lub kanałów danych.

Oto skrzypce, który działa w Chrome (która robi filmy tylko niestety) i Firefox:

https://jsfiddle.net/tmwLxjLy

To pokazuje proste nagrywanie, a następnie odtwarzanie wideo 5 sekund później. Zostawię to ćwiczenie, aby zmodyfikować je, aby spowodować ciągłe 5-sekundowe opóźnienie.

+1

Dzięki Jib, to fantastyczna odpowiedź! Zbadam MediaRecorder. Dzięki za skrzypce. – Ron

+0

czy jest jakiś powód, dla którego możemy kontrolować tę liczbę klatek na sekundę, gdy wykryto szkodliwą sieć? –