2013-06-16 48 views
8

nếu tôi đang ở trong một căn phòng với 7 người dùng khác, tôi tự hỏi liệu WebRTC có buộc mọi người dùng thiết lập kết nối với từng người tham gia khác không.WebRTC xử lý nhiều kết nối như thế nào?

Rõ ràng nó sẽ tiêu thụ thứ gì đó như 7kb/s * 7 tải xuống và thậm chí tải lên, và nhiều kết nối không thể xử lý điều này nếu kết nối của họ đã bận. Thay vào đó với một số loại phương tiện truyền thông tiếp sức sử dụng băng thông sẽ chỉ 7kb/s nhưng bạn sẽ mất băng thông thích ứng giữa các đồng nghiệp.

Bạn có biết bất kỳ rơle phương tiện nào hay cách giải quyết vấn đề này không? là máy chủ TURN (như https://code.google.com/p/rfc5766-turn-server/) phù hợp cho loại công việc này (bao gồm đa hướng)?

+0

chủ đề tương tự tại đây trong SO http://stackoverflow.com/questions/16438933/how-to-build-a-network-using-peer-connections-of-multiple-peers –

Trả lời

2

Hãy xem http://tools.ietf.org/html/draft-ietf-rtcweb-use-cases-and-requirements-06 để biết chi tiết về các trường hợp sử dụng WebRTC. Các tác giả đề cập đến một giải pháp hội nghị đa người dùng sử dụng một máy chủ trung tâm. Vì vậy, giải pháp tốt nhất để thiết lập hội nghị A/V đa người dùng sử dụng WebRTC là có một máy chủ trung tâm như vậy để trộn âm thanh và A/V "phát sóng" cho tất cả các đồng nghiệp.

Điều này làm giảm các vấn đề về băng thông mà bạn đề cập trong câu hỏi của bạn. Hiện tại, một loạt các nhà cung cấp dịch vụ khởi nghiệp và thành lập đang làm việc trên các giải pháp hội nghị dựa trên WebRTC, chỉ cần để công cụ tìm kiếm web yêu thích của bạn chọn một số ví dụ.

Chỉ một máy chủ TURN không đủ vì TURN chỉ được sử dụng để chuyển tiếp dữ liệu cho máy chủ không thể truy cập trực tiếp (có thể do tường lửa). Máy chủ TURN không chấm dứt kết nối WebRTC.

0

Bạn đúng rằng sự thích ứng băng thông giữa các đồng nghiệp là một vấn đề.

Máy chủ TURN không giải quyết được vấn đề này vì tất cả những gì nó cung cấp là điểm cuối ổn định, thường dành cho những người đứng sau các thiết lập NAT rất hạn chế.

Giải pháp cho vấn đề này nằm trong codec video có thể mở rộng. Các codec video này được thiết kế đặc biệt để giải quyết vấn đề hội nghị truyền hình đa chiều. H.264/SVC là một codec có thể mở rộng như vậy và hiện đang được Google+ Hangouts sử dụng. VP8 cũng có khả năng mở rộng theo thời gian và không gian và được sử dụng trong WebRTC.

Codec video có thể mở rộng được thiết kế sao cho các phần của luồng, thường là các gói UDP riêng lẻ, có thể bị xóa khỏi luồng trong khi vẫn giữ khả năng giải mã video ở chất lượng thấp hơn. Ít nhất ba loại khả năng mở rộng được sử dụng:

  • Tạm thời, trong đó khung hình trên giây được giảm.
  • Không gian, nơi số lượng pixel bị giảm.
  • Chất lượng, trong đó độ phân giải màu giảm.

Nếu bạn triển khai máy chủ hội nghị truyền hình, bạn có thể đi vào luồng VP8 ở mức thấp hơn mức WebRTC, thực hiện các thay đổi cần thiết cho từng luồng video và giải quyết sự cố thích ứng băng thông.

+0

Không thể sử dụng khả năng mở rộng VP8 hỗ trợ trong trình duyệt WebRTC (bạn không truy cập được với API hiện tại). Hangouts sử dụng simulcast (được hỗ trợ trong các API hiện có) để gửi nhiều phiên bản của luồng với những phẩm chất khác nhau sao cho máy chủ (đơn vị chuyển tiếp) có thể chọn một phiên bản để gửi đến từng đích. – ggarber

5

Máy chủ TURN hoạt động như máy chủ chuyển tiếp dự phòng để cho phép kết nối khi kết nối ngang hàng trực tiếp là không thể do tường lửa hoặc các sự cố mạng khác. (Thông tin thêm here: nhấn P để biết ghi chú của người thuyết trình.) Máy chủ TURN không được thiết kế để phân phối phương tiện.

A Multipoint Control Unit có thể giải quyết vấn đề bạn đề cập: có một cấu trúc liên kết ví dụ cho số here này.Như đã nêu trong ghi chú cho trang trình bày đó:

Đây là máy chủ được thiết kế riêng để phân phối phương tiện, và có thể xử lý nhiều người tham gia; nó cũng có thể làm thông minh những thứ như chuyển tiếp luồng chọn lọc, trộn âm thanh hoặc video, hoặc ghi âm.

2

Máy chủ TURN chỉ hỗ trợ trong quá trình truyền qua tường lửa và thông qua NAT. Đối với hội nghị thực sự, bạn cần một loại MCU trung tâm của máy chủ trong đám mây, nếu không hội nghị không quy mô khi bạn tiếp tục thêm người dùng. Có một số máy chủ truyền hình hội nghị cho WebRTC được chẳng hạn như từ https://vline.com/http://ngmsvid.com

0

Nếu câu hỏi vẫn đứng, đây là đề nghị của tôi: Dựa trên máy chủ SIP của bạn cài đặt một phần mềm proxy RTP chẳng hạn như nếu bạn đang sử dụng vài kamailio nó với rtpengine .

2

Có, bạn sẽ phải thiết lập các kết nối riêng biệt cho từng đối tác của bạn. Để giải quyết vấn đề này, bạn có thể sử dụng máy chủ phương tiện như kurento.

Với một máy chủ đa phương tiện sẽ kết nối với máy chủ phương tiện, máy chủ sau đó sẽ kết hợp các luồng video từ các đồng nghiệp của bạn thành một bằng cách đặt chúng cạnh nhau và sau đó gửi cho bạn luồng mới. Điều này tiết kiệm cho các đồng nghiệp sự cố khi phải tải xuống luồng từ mọi người khác.

Các vấn đề liên quan