GB28181可移植跨平台编译

文章介绍了如何使用开源库eXosip2-5.2.0实现在ARM平台上的GB28181信令层和RTP媒体传输层功能。通过下载源码,创建依赖目录,配置交叉编译工具链,以及运行提供的编译脚本来完成移植过程。同时,文章指出原生库可能不支持GB28181特定字段,需要对库进行修改以适应协议需求。
摘要由CSDN通过智能技术生成

         GB28181作为安防领域的重要协议,很多嵌入式移动端需要实现GB28181信令层和RTP媒体传输层的信令;当然如果是自己从头开始撸信令,所有功能信令的解析和答复会花掉很长的一个开发周期;聪明的同学一般会考虑现有的开源项目或者已开发好的调试代码作为基础,进行上层逻辑的开发。

         开源项目不难找,关键在于移植;下面介绍一款开源sip库的arm移植的步骤,希望给你今后的开发起到一定的启发作用。

        我们拿eXosip2-5.2.0为例,首先从他的官网获取到他的源代码,这个工程是由纯C语言构建而成,所以在移植时会相对简单一些,只需要考虑到他的交叉编译工具链的替换就OK了。

        http://ftp.twaren.net/Unix/NonGNU//osip/
        http://ftp.yzu.edu.tw/nongnu/exosip/

        首先从Osip和eXosip2的源码地址下载好源码,创建一个depends目录,并且将下载好的libeXosip2-5.2.0.tar.gz 和  libosip2-5.2.0.tar.gz 放入depends目录;然后将你的交叉编译工具链放到系统路径并且export声明一下当前路径可调用;设置之后输入交叉编译工具链的全名试一下能不能在当前路径进行调用:arm-augentix-linux-gnueabi-gcc  arm-augentix-linux-gnueabi-g++

        好啦,下面就是福利时间,给出你一个编译脚本直接运行脚本就可以啦。记得运行目录为你的depends上级目录,

#!/bin/bash

WORKSPACE=`pwd`
cd $WORKSPACE/depends

VERSION=5.2.0

# libosip2
tar xvf libosip2-$VERSION.tar.gz
cd libosip2-$VERSION

./configure --prefix=$WORKSPACE   --host=arm-augentix-linux-gnueabi CC=arm-augentix-linux-gnueabi-gcc CXX=arm-augentix-linux-gnueabi-g++ 
make install

cd $WORKSPACE/depends
rm -rf libosip2-$VERSION

# libexosip2
tar xvf libeXosip2-$VERSION.tar.gz
cd libeXosip2-$VERSION

./configure --prefix=$WORKSPACE LDFLAGS="-L$WORKSPACE/lib" CFLAGS="-L$WORKSPACE/include"  --host=arm-augentix-linux-gnueabi CC=arm-augentix-linux-gnueabi-gcc CXX=arm-augentix-linux-gnueabi-g++ 
make install

cd $WORKSPACE/depends
rm -rf libeXosip2-$VERSION

# rm unused files
cd $WORKSPACE

        运行脚本过后,你会在当前目录获得include  lib文件夹,这两个文件夹里面的库和头文件就已经变成你arm板子可识别的库文件了,后面就可以进行调用库函数来实现复杂的GB28181信令交互咯。但是原生的eXosip2和osip2的库没有一些信令的关键字,对于GB28181特有字段无法做出回复很可能出现段错误;

         如果你想要修改之后的GB28181信令库和流媒体库的话可以看一下下面的信令:

        

ACK sip:00000000001310000001@122.193.199.27:49298 SIP/2.0

Via: SIP/2.0/UDP 49.7.197.1:8883;branch=z9hG4bK1623.0a984467.4

Via: SIP/2.0/UDP 10.12.21.157:37110;received=49.7.199.168;rport=37110;branch=z9hG4bK.JqaHgN4c4chQZmvO

Max-Forwards: 69

From: "GB28181-client" <sip:34020000002000000001@49.7.197.1>;tag=EZeCq7L6

To: <sip:00000000001310000001@49.7.197.1>;tag=1143138714

Call-ID: PbV2AgnkOjmhdqfJ

CSeq: 48358 ACK

Content-Length: 0

User-Agent: 17625929770

        可以提供GB28181整套信令层,媒体封装层源码,Cmake工程可移植编译,如果你可以提供GB28181公网服务器,还可以进行测试推流;省去你的开发时间,合作共赢。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_1015787417

Show you code

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值