ubuntu18.04编译GB28181Server
创始人
2024-01-25 11:32:05
0

目录

  • 一、简绍
  • 二、项目依赖的第三方库
    • 2.1 jrtplib
      • 2.1.1 编译JRTPLIB
    • 2.2 mxml
      • 2.2.1 编译mxml
    • 2.3 osip2/exosip2
      • 2.3.1 编译osip2
      • 2.3.2 编译exosip2
    • 2.4 ffmpeg
    • 2.5 提示
  • 三、修改GB28181Server
    • 3.1 修改GB28181Server.pri
    • 3.2 修改AppConfig.cpp
    • 3.3 修改GB28181Server.cpp
    • 3.4 修改RtpReciever.cpp
    • 3.5 修改main.cpp
  • 四、小提示
    • 4.1 运行时找不到第三方库
    • 4.2 中文乱码

一、简绍

GB28181Server是基于Qt+ffmpeg+exosip+jrtplib 实现的GB28181服务器
项目地址:GB28181Server

项目的开发者(云天之巅-音视频技术中心)只适配了Windows系统,在Linux系统上并没有过多的进行适配。

二、项目依赖的第三方库

2.1 jrtplib

项目地址:JThread(可选)
项目地址:JRTPLIB

jrtplib是一个基于C++、面向对象的RTP封装库。

2.1.1 编译JRTPLIB

需要安装cmake,需要使用JThread需要先编译,编译方式跟JRTPLIB一样的(这个项目中没有用到jthread)

sudo apt install cmake
# 进入目录源代码目录后
mkdir build && cd build
cmake ..
make -j
sudo make install

2.2 mxml

项目地址:mxml
Mini-XML是一个小型的XML解析库,你可以用来在你的应用程序中读取XML数据文件或字符串,而不需要大型的非标准库。

2.2.1 编译mxml

./configure
make -j
sudo make install

2.3 osip2/exosip2

参考:ubuntu 安装osip2/eXosip2

Osip地址:http://ftp.gnu.org/gnu/osip/
Xsip2地址: http://download.savannah.nongnu.org/releases/exosip/

wget http://ftp.gnu.org/gnu/osip/libosip2-5.2.1.tar.gz
wget http://download.savannah.nongnu.org/releases/exosip/libexosip2-5.2.1.tar.gz

2.3.1 编译osip2

./configure
make -j
sudo make install

2.3.2 编译exosip2

编译这个有报一个错,关于ssl的。如果报错了安装

sudo apt install libssl1.0-dev
./configure
make -j
sudo make install

2.4 ffmpeg

ffmpeg我就不进行编译了,我直接使用apt install 下来的开发包

sudo apt install libavcodec-dev libavdevice-dev libavfilter-dev libavformat-dev libavutil-dev libpostproc-dev libswscale-dev -y

2.5 提示

该项目的作者有提供第三库的源码,你也可以直接使用作者提供的第三方库源码进行编译。

三、修改GB28181Server

3.1 修改GB28181Server.pri

在最后面追加

unix{
INCLUDEPATH += /usr/lcoal/include
unix:!macx: LIBS +=  -lmxml -ljrtp -losip2 -leXosip2 -losipparser2
unix:!macx: LIBS +=  -lavcodec -lavdevice -lavfilter -lavformat -lpostproc -lavutil -lswresample -lswscale
}

若这样还是提示有库无法链接到的话,建议使用 “鼠标右键–>添加库–>外部库”,选择你要添加的库,Qt帮你把路径添加上来也是可以的。

3.2 修改AppConfig.cpp

提示:看注释

#include "AppConfig.h"#if defined(WIN32)
#include 
#include 
#include 
#include 
#else
#include 
#include 
#include 
//添加cstring
#include void Sleep(long mSeconds)
{usleep(mSeconds * 1000);
}
#endif

3.3 修改GB28181Server.cpp

从14行看

#if defined(WIN32)#include #include 
#else#include //添加 sys/socket.h 和 netinet/in.h#include #include 
#endif

注释掉下面这句,因为这句是作者修改了exosip的代码加的,我使用的是原生的,所以呢这句话我没用到

 //int udpSsocketFd = eXosip_event_getUdpSocket(eCtx, remoteIpAddr, &remotePort);

3.4 修改RtpReciever.cpp

修改一下jrtplib的头文件路径

#include "jrtplib3/rtpsession.h"
#include "jrtplib3/rtppacket.h"
#include "jrtplib3/rtpudpv4transmitter.h"
#include "jrtplib3/rtpipv4address.h"
#include "jrtplib3/rtpsessionparams.h"
#include "jrtplib3/rtperrors.h"
#include "jrtplib3/rtpsourcedata.h"
#include "jrtplib3/rtpmemoryobject.h"

3.5 修改main.cpp

这里有个大小写的问题

#include "MainWindow.h"

四、小提示

4.1 运行时找不到第三方库

运行程序的时候出现类似以下错误:

error while loading shared libraries: 
libmxml.so.1: cannot open shared object file: No such file or directory

如果你按照我的那个方式去安装第三方库,值就可以填 /usr/local/lib,如果你自定义了install 的目录(configure 指定了目录)的时候,需要自己修改一下。

添加一个 LD_LIBRARY_PATH 值为 /usr/local/lib
在这里插入图片描述
添加完成后,接下来去检查一下,看下图,检查一下有灭有
在这里插入图片描述

4.2 中文乱码

这个项目是在windows上开发的文本格式应该是GBK,打开项目也正常,运行程序也正常,OK
在这里插入图片描述

相关内容

热门资讯

清明节寄语 清明节寄语65句  清明时节,缅怀先烈,斯人已去,心中犹念!以下是清明节寄语65句,欢迎阅读。  N...
小学一年级新生入学寄语 小学一年级新生入学寄语  在平平淡淡的日常中,大家最不陌生的就是寄语了吧,寄语的种类很多,可分为名人...
狄更斯英文经典语录   狄更斯有很多经典语录,大家都知道哪些呢?下面搜集了狄更斯中英文经典语录,欢迎参考!  【1】狄更...
邹中棠的语录 2020年邹中棠的语录集合38条  年轻时为别人存在!成熟时为自己存在!成功时为社会存在!下面是小编...
给语文老师的感谢信 给语文老师的感谢信汇总4篇  在日复一日的学习、工作或生活中,大家都写过信吧,书信是写给具体收信人的...
高中毕业生老师评语 高中毕业生老师评语  在日常生活或是工作学习中,大家一定都接触过评语吧,评语可以对被评价者进行有针对...
钢铁是怎样炼成的读后感 关于钢铁是怎样炼成的读后感范文关于钢铁是怎样炼成的读后感范文1  以前听别人提起《钢铁是怎样炼成的》...
经典彩色留言 - 经典彩色留言 -范文[M][M][ftc=#EEF5E1]洋[/ft][/M][ftc=#EEF5E...
武则天经典语录 武则天经典语录推荐  在平日的学习、工作和生活里,大家总免不了要接触或使用语录吧,语录是指对那些富有...
新学期写给自己的寄语   过去的成绩再好,仅仅代表着过去。将摆在你面前的是新的老师,新的旅程,新的目标,不管你的目标是想要...
退休教师的感言 退休教师的感言(精选8篇)  在平日的生活或工作学习中,我们时常会因不同的人和事内心会有所触动,产生...
2021向国旗敬礼 2021向国旗敬礼  国旗的定义  国旗(National flag)是国家的一种标志性旗帜,是国家...
幼儿园新年寄语 幼儿园新年寄语(通用15篇)  在日复一日的学习、工作或生活中,大家都用到过寄语吧,寄语是人们所传的...
家长写给幼儿园孩子的寄语   孩子上幼儿园了,我们作为家长,应该怎么给孩子书写寄语呢?以下是小编精心准备的家长写给幼儿园孩子的...
韩寒 《光荣日》经典语录   1、我来日方长,你细水长流。  ——韩寒《光荣日》  2、我就喜欢你明白,虽然你不明白 .  —...
爱的经典语录 爱的经典语录  爱是一种缘份际遇,是一种感觉触碰,是一种心灵感应,是一种互动共享。下面是关于爱的经典...
第一幼儿园园长的寄语 第一幼儿园园长的寄语  奉献是我们的天职,和孩子们一起成长是我们永远做不完的梦在孤岛一幼这片快乐的土...
家长认错给老师的检讨书 家长认错给老师的检讨书  在学习、工作或生活中出现了失误后,我们常常被要求写检讨书,以对出现的过错进...
关于三毛的语录   【文章导读】爱上一个人的时候,总会有点害怕,怕得到他;怕失掉他。 下面是小编收集的关于三毛经典作...
葡萄酒情人节经典寄语 葡萄酒情人节经典寄语(集锦15篇)  无论在学习、工作或是生活中,大家或多或少都会用到过寄语吧,寄语...