mediasoup 源码分析(七)consumer创建过程

一、consumer 类型介绍

mediasoup总共有四种消费者类型,SimpleConsumer、PipeConsumer、SvcConsumer、SimucastConsumer。

consumer的类型是基于producer的类型来创建的。

SimpleConsumer: 普通RTP数据的消费者,对应PlainTransport。

PipeConsumer:不同Worker之间Router之间的数据流转,则其为接收或者消费从另外一个Worker中的Router传过来的数据。

SvcConsumer:传输时一般分为3层(核心层、拓展层、边缘层)进行传输,则其处理消费多层数据。

SimulcastConsumer :Simulcast 多播模式,即当共享者使用的是多路流时,则使用其来接收。

二、创建过程

见Transport.ts 的consume函数

async consume(
{
   producerId,
   rtpCapabilities,
   paused = false,
   preferredLayers,
   appData = {}
}: ConsumerOptions
): Promise<Consumer>
{
....
....
  //创建Consumer
  const reqData =
 {
	 kind : producer.kind,
	 rtpParameters,
	 //创建consumer时,type类型来自producer的类型  
	 //对应 Producer中的_data.type ,在Producer构造函数中创建
	 type  : producer.type,  
	 consumableRtpEncodings : producer.consumableRtpParameters.encodings,
	

猜你喜欢

转载自blog.csdn.net/lcalqf/article/details/108010534