2016-04-11 19 views
2

2 mediapipeline (A) (B) olarak giriş yapacak ve 1 mediapipeline (A) ve 2 medya boru hattından gelen Audio ile bir mediapipeline (C) çıkış yapacak bir kms filtresi oluşturmayı düşünüyorum (B).Kurento: multiple mediapipeline mux

Kafam karıştı, bunu java seviyesinde yapmalı mıyım yoksa bunu KMS filtre seviyesinde yapmalı mıyım? Bunu Java/KMS Filtre katmanında yapmak bile mümkün mü? medya boru hattı ile

enter image description here

cevap

1

Bunu yapmanın en kolay yolu, farklı medya boru hatları kolayca medya paylaşımı olamaz çünkü tek boru hattında tüm yaratmaktır olacaktır. Tümü istemci tarafından uygulanabilir (java veya js).

iki (örneğin WebRtcEndpoints için) Endpoints, webRtcEp1 ve webRtcEp2 medya almak ve webRtcEpOut kullanarak yayabilir. Sonra sadece bunları böyle bağlamak:

webRtcEp1.connect (webRtcEpOut, MediaType.AUDIO); 
webRtcEp2.connect (webRtcEpOut, MediaType.VIDEO); 

Bu noktada, WebRctOutwebRtcEp2 den webRtcEp1 ve videodan ses emiting edilir.

1

, doğru, medya kaynağına atıfta götürün? Medyayı farklı boru hatlarından karıştırmak mümkün değildir.

Composite mikser elemanı ile kontrol edebilirsiniz. Hiç test edilmedi, ama işe yaramalı. B'den gelen sesi ve A'dan gelen videoyu almak çok kolay olurdu. Diyelim ki netlik için gösterilmemiştir bir WebRtcEndpoint

Composite composite = new Composite.Builder(pipeline).build(); 
HubPort hubPortA = new HubPort.Builder(composite).build(); 
webRtcA.connect(hubPortA, MediaType.VIDEO); 
HubPort hubPortB = new HubPort.Builder(composite).build(); 
webRtcB.connect(hubPortB, MediaType.AUDIO); 

WebRtcEndpoint oluşturma ve müzakere yoluyla bu medya alıyorsanız varsayalım.


daha bu sadece bu iki karıştırmak istiyorum, ama @santoscadenas olarak sadece farklı türden iki akışları karıştırmak istiyorsanız, doğrudan WebRtcEndpoint kullanabilirsiniz işaret olabilir 1

Düşünce DÜZENLEME . Bu aynı zamanda kaynakları koruyacak ve Composite oldukça aç bir şey olduğu için daha iyi ölçeklenecektir. Diğer cevap alınan ve adlandırma kurallarına adapte, bu

webRtcA.connect(webRtcOut, MediaType.VIDEO); 
webRtcB.connect(webRtOut, MediaType.AUDIO); 
+0

yes by mediapipeline Medya kaynağını kastediyorum, kms filtresi kullanmayı denemek istersem kullanılabilecek özel bir yönteme işaret edebilir, ne yapmalıyım diye düşünmeliyim –

+1

@SagarPilkhwal Bence kompozitin çalışabileceğini düşünüyorum beklediğiniz gibi. Hemen deneyin ve muhtemelen kendi filtrenizi oluşturmayı atlayabilirsiniz. – igracia

+1

Bunun için bir bileşene ihtiyacınız yok, cevabıma bakın – santoscadenas

İlgili konular