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 条评论
回复 删除
下一页