SORU
19 AĞUSTOS 2013, PAZARTESİ


WebRTC - ölçeklenebilir canlı izle yayın / çoklu yayın

[ ! ]Soru hala açık

SORUN:

WebRTC bize peer-to-peer video/ses bağlantısı sağlar. P2p aramalar için mükemmel mekanlardır. Ama yayın (bir-çok, örneğin, 1-10000) ne dersin?

Bir yayın kuruluşu var diyelim ki "B" ve iki katılımcı "", "". A2 A1 Çözülebilir gibi görünüyor tabii ki: biz sadece B A1 ve A2. B ile Bağlan Bu yüzden B doğrudan video/ses akışı A1 ve A2 için başka bir akışı gönderir. B iki kez dere gönderir.

Şimdi sağlar vardır hayal 10000 katılanlar: A1, A2, ..., A10000. B 10000 akışları göndermek gerektiği anlamına gelir. Her akış anlamına gelir B hızını 400 MB/s giden internet hızı bu yayını sürdürmek için ihtiyaç duyduğu ~40KB/s. Kabul edilemez.

ÖZGÜN SORU (ESKİ)

Bir şekilde bunu çözmek için, B gönderir, böylece olası bazı sunucu ve katılımcıları tek bir yayını sadece bu sunucudan bu akış çekin. Evet, bu sunucuda giden hızının yüksek olması gerektiği anlamına gelir, ama onu korumak istiyorum.

Belki de bu WebRTC fikir mahvetmek demektir?

[ ! ] GÜNCEL SORU

  1. Çözmek CPU/bant Genişliği - server-az çözüm (aka çok noktaya yayın veya benzer bir şey) var mı?
  2. CPU çözmek mümkün akışı kodlamak için kullanılırbir kezve yaşıtlarına göndermek?
  3. Çözmek/bant Genişliği - çoklu gönderim kesinlikle mümkündür CPU, ama aslında gerçek hayatta (gecikme, ağın stabil) çalışıyor mu?

NOTLAR

Flash son müşteriler için kötü UX göre ihtiyaçlarım için çalışmıyor.

ÇÖZÜM

26.05.2015 - medya-sunucular hiç kullanmayın anda WebRTC, işletme sınıfı yayın için böyle bir çözüm yok. Sunucu tarafı çözüm olarak hibrid (sunucu tarafı farklı koşullara bağlı olarak p2p) piyasada var.

https://github.com/muaz-khan/WebRTC-Scalable-Broadcast ama bu olası sorunları cevap vermek istiyorlar gibi ama bazı umut vaat eden teknisyenler var: gecikme, genel ağ bağlantısı istikrar, ölçülebilirlik formül (sonsuz ölçeklenebilir muhtemelen değildir).

CEVAP
21 ŞUBAT 2015, CUMARTESİ


Aslında burada örtülü olduğu gibi, burada yapmaya çalıştığınız şeyi normal olarak mümkün değil, eski fashionned WebRTC (kesinlikle peer-to-peer). Daha önce de söylediğim gibi, çünkü, WebRTC bağlantıları her oturum için verileri şifrelemek için şifreleme anahtarları renegociate,. Yayıncını (B) gerçekten de katılanlar olduğu gibi birçok kez olarak kendi akışı yüklemek için gerekir.

Ben denedim, WebRTC bir ağ geçidi olarak adlandırılır. ancak, çok iyi çalışan çok basit bir çözümü var: Janus iyi bir örnektir. Tamamen açık kaynak (github repo here).

Şu şekilde çalışıyor: yayıncı kişiler gateway (Janus)WebRTC konuşuyor. Anahtar negociation var: Janus B iletir güvenli (şifreli akarsu).

Katılımcılar, Janus bağlanmak, tekrar bağlandığında şimdi: WebRTC negociation, güvenli anahtarları, vb. Şu andan itibaren, her Janus katılanlara akışı yayarlar.

İyi yayıncısı çünkü bu işleri (B) sadece bir kez kendi yayını, Janus yüklensin. Şimdi Janus çözer verileri kullanarak kendi anahtarı vardır ve erişim için ham verileri (bu, RTP) ve yayan o paketler için, her katılımcı (Janus bakıyor şifreleme için). Ve bir sunucu üzerinde Janus koyduğundan beri, büyük bir upload bant genişliği olan, pek çok eş akışı mümkün olacak.

Yani Evet, öyleyokbir sunucu içerir, ama bu server WebRTC konuşuyor, ve "": eğer veri bozulması hakkında endişelenmenize gerek yok yani Janus kısmını uygulamak veya ortadaki adam. kendi Sunucunuz, elbette tehlikede olmadığı sürece. Ama yapabileceğin çok şey var.

Sana göstermek için ne kadar kolay olduğunu görmek için kullanın, Janus, bir fonksiyonu incoming_rtp() (incoming_rtcp()) Bu diyebilirsin, hangi verir bir işaretçi rt(c)p paket. Daha sonra, her bir katılımcı için (Janus çok kullanımı kolay hale getirir sessions kaydedilmez) gönderebilirsiniz. Look here for one implementation of the incoming_rtp() function, a couple of lines below tüm katılımcılar ve here paketlerin iletimi için nasıl görebilirsiniz rtp paket geçişi için gerçek işlevi görebilirsiniz.

Tüm belgeleri oldukça kolay okumak ve anlamak, oldukça iyi çalışıyor. Örneğin, en basit ve Janus. iç işleyişini anlayabilirsiniz echotest ile başlamanızı tavsiye ederim Çok fazla kod yazmak için, çünkü echo test dosyası kendi yapmak için Düzenle öneririm, tam bir dosyadan başlayabilirsin.

İyi eğlenceler! Umarım yardımcı olmuşumdur.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • kalabrandmusic

    kalabrandmus

    25 Kasım 2009
  • MagmaRhino

    MagmaRhino

    16 Temmuz 2011
  • TheDailyTechDose

    TheDailyTech

    15 EKİM 2012