WebRTC konferansı bağlamında sanal medya akışları, birden fazla katılımcının medyasını toplamak ve dağıtmak için seçici yönlendirme birimi (SFU) tarafından oluşturulan medya akışlarıdır. Büyük konferanslarda karmaşık bir bağlantı ağı oluşturacak doğrudan eşler arası medya akışlarının aksine, sanal medya akışları topolojiyi basitleştirir. SFU, her katılımcıdan ayrı medya akışları alır ve etkin veya alakalı akışları diğer katılımcılara seçerek yönlendirir. Bu akışları daha küçük ve sabit bir giden sanal medya akışı grubuna çoklu yayınlayarak aktarır.
Bu yaklaşım, her katılımcının işlemesi gereken eşzamanlı gelen akış sayısını azaltarak işleme ve bant genişliği gereksinimlerini düşürür. Her sanal yayında, konuşmacı etkinliği veya video ataması gibi faktörlere göre SFU tarafından dinamik olarak ayarlanan, aynı anda bir katılımcının medyası bulunabilir. Katılımcılar bu sanal yayınları alır ve diğer katılımcıların yayınlarını tek tek yönetmek zorunda kalmadan konferansın birleştirilmiş bir görünümünü etkili bir şekilde görebilir. Sanal medya akışları tarafından sağlanan bu soyutlama, WebRTC konferanslarını çok sayıda katılımcıya ölçeklendirmek için çok önemlidir.
İstemcinin ses almak için tam olarak üç işitsel medya açıklaması sunması gerekir. Bu açıklamalar üç yerel işitsel alıcı/verici oluşturur. Müşterinin video almak için bir ila üç video medya açıklaması sunması ve bu sayıda video alıcı/verici oluşturması gerekir.
Yakalayıcılar
İstemciye ait her alıcı/verici, Meet sunucularından ses RTP akışlarını alan özel bir RtpReceiver
ve özel bir "medya parçasına" sahiptir.
Her kanalın benzersiz bir kimliği vardır ve söz konusu medya kaynağından kendi RTP paketi akışını alır. Örneğin, A Parçası production-1
kaynağından, B Parçası ise production-2
kaynağından ses alabilir.
SSRC'ler
Her RTP paketinin, belirli bir parçaya bağlayan bir Senkronizasyon Kaynağı (SSRC) başlık değeri vardır.
Meet Media API üzerinden yapılan ses oturumları, her biri kendi statik SSRC'sine sahip üç farklı medya akışı kullanır. Bu SSRC değerleri oluşturulduktan sonra oturum boyunca hiçbir zaman değişmez.
Sanal yayınlar
Meet Media API, sanal medya akışlarını kullanır. Bunlar oturum boyunca statiktir ancak paketlerin kaynağı, en alakalı feed'leri yansıtacak şekilde değişebilir. Sanal medya akışları, ses ve video için aynı şekilde çalışır.
RTP paketi başlıklarındaki Katkıda Bulunan Kaynak (CSRC), RTP paketlerinin gerçek kaynağını tanımlar. Meet, konferans katılımcılarına katıldıklarında kendilerine ait benzersiz bir CSRC atar. Bu değer, kullanıcı siteyi terk edene kadar sabit kalır.
SSRC sayısı Meet Media API oturumu boyunca sabit olduğundan, aşağıdaki üç olası senaryodan biri geçerlidir:
Mevcut SSRC'lerden daha fazla katılımcı:
Meet, en yüksek sesli üç kişiyi üç SSRC'ye iletir. Her RTP akışı kendi özel SSRC'sinde olduğundan akışlar arasında karışım olmaz.
Şekil 1. Meet, en yüksek sesli üç kişiyi üç SSRC'ye iletir. Konferanstaki orijinal akışlardan herhangi biri artık en yüksek sesli akışlardan biri değilse Meet, SSRC'yi oluşturan RTP paketlerini en yüksek sesli akışa geçirir.
Şekil 2. Meet, RTP paketlerini en yüksek sesli yeni kişiye geçirir. Etkin katılımcı sayısı üç ses SSRC'sinden azdır:
Konferansta mevcut olandan daha fazla SSRC'nin bulunduğu senaryoda Meet, mevcut ses paketlerini kendi benzersiz SSRC'sine eşler. Kullanılmayan SSRC'ler hazır ve kullanılabilir durumda kalır ancak RTP paketi iletilmez.
Şekil 3. Meet, mevcut ses paketlerini kendi benzersiz SSRC'sine eşler. Etkin katılımcı sayısı, üç işitsel SSRC'ye eşittir:
Eşit sayıda katılımcı ve kullanılabilir SSRC'ler senaryosu için her katılımcının medyası özel bir SSRC ile eşlenir. Bu eşlemeler, söz konusu senaryo devam ettiği sürece varlığını sürdürür.
Şekil 4. Meet, her katılımcının medyasını özel bir SSRC ile eşleştirir.