简单来说,在SIP网络环境中,用户一般都通过一端的SIP终端通过媒体服务器对对端发送RTP流。一方是RTP发送方,另外一方是RTP接收方。
![RTP发送方和RTP接收方处理流程示例说明](https://www.nxrte.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
发送方首先捕获未压缩的媒体流数据,存储为buffer, 然后经过解码器处理,根据解码器算法不同,输出为压缩的frame 帧数。压缩的frame进行打包处理,如果数据包比较大的话,进行分包处理,以RTP数据包的形式发送到通道coder,进行错误纠正处理或者数据包重新排列流程,最后通过网络发送到对端网络中。另外,发送方同时要针对媒体流生成一个周期性的报告,包括了同步数据,接收方会根据这个报告调整其接收策略。
对端网络则执行相反的处理流程,但是更加复杂,这里仅做简单重点说明。对端网络收到数据包以后,验证数据的有效性,然后插入到输入队列中等待下一步处理。通道coder然后进行丢包修正处理。数据包插入到buffer中。
buffer中的数据通过时间戳重新排序。最后一个数据包收到以后,移除网络引起的各种无效数据。frame数据重新进行修复,通过解码器解码,修正时钟,确保接收方和发送方数据时钟一致。根据媒体格式和接收方终端的支持能力,通过mix对数据接收方以混音或者单个语音的方式发送。
作者:james.zhu
来源:SIP实验室
原文:https://mp.weixin.qq.com/s/uDkxGz_vbsDkxrBknSWS-w
版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。