GB28181-2016中的媒体流传输模式分析

   在GB28181的2016版中,对于媒体流的传输在原有UDP传输的基础中,增加了主动tcp和被动tcp的方式。

   1.UDP的传输

    这个是普遍的传输方式,GB28181服务端在发invite时,在携带的SDP中包含了接收媒体的端口,设备端(被呼叫端)收到invite后,解析该端口,通过UDP将媒体流发向该端口。

   2.TCP被动

   GB28181服务端在发invite时,在携带的SDP中包含了接收媒体的端口,并监听该端口的媒体数据,设备端(被呼叫端)收到invite后,解析该端口,通过TCP将媒体流发向该端口。

   3.TCP主动

   设备端(被呼叫端)告知服务端自己的媒体流tcp端口,服务端主动去连接设备端(被呼叫端)的该端口,获取数据。

 

基于新的2016版GB28181协议,我们在设备端开发时除了传统的udp发流外,还要考虑tcp主动和tcp被动两种方式,在代码的实现中,我们通过被服务端invite所携带的sdp进行区分,代码如下:

enum SYMediaProtocol
{
	SYUdp = 0,  //UDP传输
	SYTcpActive, //tcp主动
	SYTcpPassive  //tcp被动
};

SYMediaProtocol CGbtDeviceAgent::getMediaProtocol(const sstd::string szProtocol )
{
    SYMediaProtocol protocol = kUdp;
    if (szProtocol == MediaMedium::RTP_AVP_TCP || szProtocol == MediaMedium::TCP_RTP_AVP)
    {
        if (medium.setup == MediaMedium::active)
        {
            protocol = SYTcpAct
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值