国标GB28181视频流对接以及媒体服务器实现

本文介绍了采用pjproject库实现SIP服务器和视频流接收,媒体服务器自研中实现了RTSP协议,利用jrtplib进行RTP发送和ACE库作为底层支撑。同时,分享了sipsvc核心代码,包括SIP初始化、UDP传输的设置,以及媒体服务器如何处理RTSP流。此外,还提到媒体服务器需支持PS混合流编码和RTSP的打开流程。
摘要由CSDN通过智能技术生成

视频流对接采用pjproject相关库实现sip服务器,采用pjmedia实现视频流接收。 媒体服务器完全自研,媒体服务器实现了rtsp协议,jrtplib库实现RTP的发送,ACE库实现垮平台底层支撑。

sipsvc以及mediasvc以及管理系统采用MQTT实现进程通信。

sipsvc核心代码分享:

SIP初始化:

status = pjsip_endpt_create(&_cp->factory, pj_gethostname()->ptr, &_sip_endpt);
        if (status != PJ_SUCCESS) {
            ERROR_LOG(THIS_FILE, "pjsip_endpt_create failed", status);
            return status;
        }
        /* Add UDP transport. */
        {
            pj_sockaddr_in addr;
            pjsip_host_port addrname;
            pjsip_transport *tp;

            pj_bzero(&addr, sizeof(addr));
            addr.sin_family = pj_AF_INET();
            addr.sin_port = pj_htons((pj_uint16_t)_sip_port);

            if (_localAddr.slen) {

                addrname.host = _localAddr;
                addrname.port = _sip_port;

                status = pj_sockaddr_in_init(&addr, &_localAddr, (pj_uint16_t)_sip_port);
                if (status != PJ_SUCCESS) {
                    ERROR_LOG(THIS_FILE, "Unable to resolve IP interface", status);
                    return status;
                }
            }

            status = pjsip_udp_transport_start(_sip_endpt, &addr,(_localAddr.slen ? &addrname : NULL),1, &tp);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值