解析音视频网络传输技术之一

前面讲解了音视频编解码的基本知识,相信阅读过的朋友,都有个基本的认识 。音视频除了存储,还如何传输呢?比如直播互动,网上课堂等,这些场景中,音视频是如何实现在网络中传输呢?今天这篇文章,就讲解下,音视频的传输的基本知识 。本文主要讲解一些基本的传输协议、拥塞控制,音视频同步,校验,QOS服务质量等 。
一.传输协议
流媒体的很多协议都是在传统的TCP/UDP协议之上,加强流媒体在网络传输中的稳定性 。在端到端的结构中,发送端的音视频数据通过流媒体协议发送给接收端,中间的传输过程重要的部分就是用TCP/UDP 。下面是流媒体与TCP/UDP协议的结构图 。
 

解析音视频网络传输技术之一

文章插图
流媒体协议结构图
 
流媒体中有一些常用的协议,比如RTMP,RTSP,RTP等,这些协议底层或者说传输层,基本都是基于TCP/IP模型,也就是在局域网的实现还是TCP/IP 。传输层有着承上启下的作用,对上提供服务,对下提供网络传输是否可靠,是否能够增加网络服务的质量 。其作用如图所示 。
 
解析音视频网络传输技术之一

文章插图
传输层作用
TCP协议都很熟悉了,具有如下这些特点:
1.面向连接的协议,可靠,顺序包
2.一种字节流
3.滑动窗口,流量控制
TCP通过三次握手建立连接后,应用层的数据会不断发到TCP缓冲中去,在流媒体中,数据这个层次需要切片,并加上header,形成segment,TCP报头如图所示:
 
解析音视频网络传输技术之一

文章插图
TCP header
为什么音视频在有些场景不直接用TCP呢?具有以下原因 。
1.在实时语音,视频等场景下,TCP的重传会造成流媒体极大延时,用户体验差
2.拥塞控制会造成大量卡顿,主要体现在弱网环境中,码率不变的情况 。
3.TCP报头要大于UDP,数据量更大 。
4.TCP连接需要花大量的时间,对于画面秒开会有一定的影响 。
以上都是在实时互动的场景中,不用TCP的原因,这些场景使用UDP肯能更加合适 。
UDP报头如下:
 
解析音视频网络传输技术之一

文章插图
UDP报头
UDP更加适合一对多实时互动的流媒体场景中,在网络带宽足够的情况,采用UDP,会更加符合实际,在UDP包加一个时标和序号,再加上适当的缓冲,也可以记录无序包,同步音视频数据等效果 。
这里并不是说哪种协议更加好,关键是看使用场景 。TCP与UDP对比 。
 
解析音视频网络传输技术之一

文章插图
TCP与UDP对比
编程思路,这里暂时不讲解具体编程代码,后面会有专栏来去分析 。
TCP协议套接字编码流程 。
 
解析音视频网络传输技术之一

文章插图
TCP编码流程
UDP套接字编码流程
 
解析音视频网络传输技术之一

文章插图
UDP套接字编码流程
RTP协议应用在组播,一对多的场景中比较多,它是基于UDP协议之上,RTP协议的应用部分主要是提供一些控制信息,比如同步,报文分割等,具体报文格式如下,PT(类型)、M(标记)、时间戳,RTP格式如下:
 
解析音视频网络传输技术之一

文章插图
RTP格式
RTSP,也是一种流媒体协议,在很对安防场景中,使用的十分频繁,一般工作在TCP之上,它也是采用一种流式传输,可以减小延迟 。当接收端有足够数据之后,就会解码播放 。RTSP主要特性如下:
 
解析音视频网络传输技术之一

文章插图
RTSP主要特性
 
二.拥塞控制
拥塞控制主要是解决网络堵塞的情况,解决好网络堵塞的传输,一直是业内关注的问题,有很多的专家组建团队去攻克这些难题 。拥塞控制可以做些什么呢?在网络资源和带宽有限的情况,如何控制质量,尽可能提升质量,就是传输视频的有效手段 。网络堵塞表现在数据包延时增加,丢弃率增加,性能下降 。拥塞控制对网络性能影响如下:
 
解析音视频网络传输技术之一

文章插图
拥塞控制对网络性能影响
产生拥塞控制主要是由以下几点影响的?
1.带宽,最大值受香农定理限制,发送速率小于或等于信道容量 。


推荐阅读