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截圖

/usr/local/lib/pkgconfig截圖

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章