GB28181开发(四) --pjsip编译

pjsip的下载网页如下:

https://www.pjsip.org/download.htm

我使用的是2.9版本,可以直接点击下面链接下载

https://www.pjsip.org/release/2.9/pjproject-2.9.tar.bz2

根据编译文档,我们需要额外的第三方库:

1、SDL

GB28181协议附加参数使用了SDL协议,所以必须下载编译,地址是

https://www.libsdl.org/release/SDL2-2.0.10.tar.gz

编译的话,直接

./configure

make

sudo make install

 

2、ffmpeg

pjsip库使用ffmpeg进行音视频方面的编解码,所以也需要下载,下载网页

http://ffmpeg.org/download.html

我使用的是4.2.1版本,另外,受版权限制,ffmpeg只包含了h264的解码,所以需要额外下载x264,以便支持h264的编码。h265目前也比较流行,所以还需要下载x265。

下载x264

ftp://ftp.videolan.org/pub/x264/snapshots/last_x264.tar.bz2

但在我机子上使用wget下载失败,所以只好找了另外个网站下载

http://download.videolan.org/pub/videolan/x264/snapshots/

我图省事,禁用了nasm,执行下面命令编译x264,编译成静态库是ffmpeg官方建议的

./configure --enable-static --disable-asm

make

sudo make install

 

下载x265

https://bitbucket.org/multicoreware/x265/downloads/x265_3.2.tar.gz

解压后进入build/linux目录,执行./make-Makefiles.bash   出现配置界面,有时候会显示找不到nasm和numa两个库,直接yum安装即可,没有改变的话直接按q退出配置,然后make,然后sudo make install

ffmpeg编译

configure前需要先执行export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH导入pkgconfig文件夹,此文件夹里应包含x264.pc和x265.pc,不然提示找不到相关库。另外需额外--extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/lib --extra-libs=-ldl,我这里不添加这几个参数是找不到x264的,特别是最后一个--extra-libs=-ldl,所以最后命令是

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH

./configure --extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/lib --extra-libs=-ldl --enable-shared --disable-static --enable-gpl --enable-libx264  --enable-libx265

但这样编译出来的库没有调试信息,一旦自己项目中关于ffmpeg的代码出问题,无法找出原因,故增加了相关调试信息的配置,增加调试信息的话,x264需要重新编译,configure增加-fPIC选项,即./configure --enable-static --disable-asm --extra-cflags=-fPIC,不然ffmpeg编译时会提示-fPIC问题

​
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH

./configure --extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/lib --extra-libs=-ldl --enable-shared --disable-static --enable-gpl --enable-libx264  --enable-libx265 --enable-debug=3 --disable-optimizations --disable-asm --disable-stripping

​

configure后直接make 和 sudo make install

 

3、pjsip

解压后,按照之前那篇文章,修改pjsip的源码,以便支持GB28181的扩展

GB28181开发(二) pjsip库SDP协议扩展

执行./configure --with-sdl=/usr/local -with-ffmpeg=/usr/local,如果需要调试模式,则是./configure --with-sdl=/usr/local -with-ffmpeg=/usr/local CFLAGS='-g'  其中如果不指定ffmpeg的位置,会导致找不到ffmepg库。然后make dep, 然后make,然后sudo make install  

 

最后/usr/local/include截图

/usr/local/lib截图

GB28181开发(四) --pjsip编译_第1张图片

/usr/local/lib/pkgconfig截图

你可能感兴趣的:(gb28181,C)