licode码流处理流程
2018-11-01 11:02:55   1  举报             
     
         
 licode码流处理全流程
    作者其他创作
 大纲/内容
 BandwidthEstimationHandler
  QualityFilterHandler
  OUTBOUND结束
  DtlsTransport:onIceData
  PacketReader
  IncomingStatsHandler
  缓存RTP包,判断是否发送RTCP RR和NACK包
  audio_sink_-deliverAudioDatavideo_sink_-deliverVideoData
  LayerDetectorHandlerread
  WebRtcConnection异步发送
  只在OUT方向做处理
  MediaStream::sendPacketAsync
  暂时屏蔽
  WebRtcConnection:onTransportData
  RtpTrackMuteHandler
  通道静默,只在OUT方向做处理
  RtpPaddingRemovalHandler
  RtpSlideShowHandler
  处理RTCP SR
  音视频通道静默控制可能引发订阅端无音频或无视频
  仅对RTCP 201、205、206处理,带宽估计
  MediaStream::onTransportData
  nicecon-onData
  LayerBitrateCalculationHandler
  DtlsTransport::write
  幻灯片模式(暂时屏蔽)
  分层过滤(暂时不清楚)可能会引发订阅端无视频
  FecReceiverHandler
  不做任何处理
  INBOUND结束
  仅做p_type映射不解码
  RTCP 201、205、206处理,RTP透传
  未做处理
  WebRtcConnection::write
  RTCP SR报文
  MediaStream::write
  下行带宽估计
  PliPacerHandler
  逐层带宽统计
  media_stream-onTransportData
  SRTP加密
  RtpPaddingGeneratorHandler
  SRPacketHandler
  VP8、VP9、H264分层编码
  PacketCodecParserread
  OutgoingStatsHandler
  RtcpProcessorHandler
  RTP
  OUTBOUND开始
  RTP、RTCP码流状态统计
  解除请求I帧定时任务(200ms),直到收到I帧请求控制
  发送方向带宽统计
  SenderBandwidthEstimationHandler
  RtcpFeedbackGenerationHandler
  pipeline_-write
  RtpRetransmissionHandler
  I帧平滑,采用定时任务发送I帧(暂时屏蔽)
  下行丢包重传,处理RTCP 205PacketBufferService包缓存,音视频最多缓存256个包
  SRTP解密
  工作流结束进入分发逻辑
  PacketWriter
  下行码流状态统计
  RTCP
  Transport::writeOnIce
  工作流结束进入DTLS加密和ICE SendData过程
  复用ice select pair的元组发送数据前提是ICE穿透完成
  调用libnice senddata发送数据
  工作流开始
  下行包缓存,用于丢包重传,每个Stream有独立的缓存队列
  subscribers-deliverAudioDatasubscribers-deliverVideoDatasubscriber(MediaStream)
  SFU
  OneToManyProcessor::deliverAudioData_OneToManyProcessor::deliverVideoData_
  nice_agent_send
  MediaStream::read
  对视频且RTP类型为RED_90000做FEC
  pipeline_-read(
  Transport::onPacketReceived
   
 
 
 
 
  0 条评论
 下一页
  
   
   
   
   
  
  
  
  
  
  
  
  
 