ubuntu14下pjsip2.5.5的安装配置

1.openssl-1.0.1t
./config shared --prefix=/opt/voip/ssl
make depend && make
make install


2.SDL2-2.0.4.tar
./configure --prefix=/opt/voip/sdl
make && make install


3. Installation of yasm-1.3.0


Install yasm by running the following commands:


sed -i 's#) ytasm.*#)#' Makefile.in &&


./configure --prefix=/usr &&
make


To test the results, issue: make check.
Now, as the root user:


make install


4.1 libx264
./configure --prefix=/opt/voip/libx264/ --enable-static --enable-shared
make
make install


4.2 openh264-1.5.0(pjproject-2.5.5尚不支持openh264-1.6.0,据说2.6x之后会支持)
(yum install nasm)
修改openh264-1.5.0目录下的Makefile中PREFIX的值
PREFIX=/opt/voip/openh264/
make
make install
试过openh264-1.4.0~openh264-1.6.0三个版本都不能在pjproject-2.5.5编译通过,报诸如以下的错误
/src/pjmedia-codec/openh264.cpp:474:10: error: ‘SEncParamExt’ has no member named ‘iInputCsp’
查找pjproject官网获悉pjproject-2.5.5尚不支持openh264-1.6.0,据说2.6x之后会支持,可能目前只支持openh264-1.0.0
因此放弃openh264,改用ffmpeg+x264方案


5.ffmpeg-3.1.1.tar(depend on yasm and libx264)
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/voip/libx264/lib/pkgconfig:/opt/voip/ssl/lib/pkgconfig:/opt/voip/sdl/lib/pkgconfig
./configure --prefix=/opt/voip/ffmpeg --enable-shared --enable-gpl --enable-libx264


6. libv4l-dev
sudo apt-get install libv4l-dev


7. pjproject-2.5.5.tr
在/home/user/.bashrc中加入下面几行
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/voip/ffmpeg/lib/pkgconfig:/opt/voip/libx264/lib/pkgconfig:/opt/voip/ssl/lib/pkgconfig:/opt/voip/sdl/lib/pkgconfig
export PATH=$PATH:/opt/voip/ffmpeg/bin:/opt/voip/sdl/bin:/opt/voip/ssl/bin:/opt/voip/libx264/bin
export LIBRARY_PATH=/opt/voip/ffmpeg/lib:/opt/voip/sdl/lib:/opt/voip/ssl/lib:/opt/voip/libx264/lib
export LD_LIBRARY_PATH=/opt/voip/ffmpeg/lib:/opt/voip/sdl/lib:/opt/voip/ssl/lib:/opt/voip/libx264/lib
export C_INCLUDE_PATH=/opt/voip/ffmpeg/include:/opt/voip/sdl/include:/opt/voip/ssl/include:/opt/voip/libx264/include


让添加的环境变量生效
source .bashrc


配置pjproject
./configure  --prefix=/opt/voip/pjsip --with-sdl=/opt/voip/sdl --with-ffmpeg=/opt/voip/ffmpeg --with-ssl=/opt/voip/ssl


修改pjmedia下的config.h
将宏定义PJMEDIA_HAS_VIDEO和PJMEDIA_HAS_FFMPEG的值改为1
make dep && make clean && make
(fatal error: alsa/asoundlib.h: No such file or directory
apt-get install libasound2-dev
[cent os]yum -y install alsa-lib-devel
)


8.测试
cd pjsip-apps/bin
新建t1.cfg文件,内容如下
# This is a comment in the config file.
--local-port 4966
--auto-answer 200
--ptime 100


--id sip:12345@192.168.1.123
--registrar sip:192.168.1.123;transport=tls
--use-tls


--realm *
--username 12345
--password 12345


--use-ice
--ice-regular
--ice-no-rtcp
--jb-max-size 300


--log-file=1.txt
--video


./pjsua-x86_64-unknown-linux-gnu --config-file t1.cfg
注册成功则可以进行通话测试


参考资料
http://www.mr-wu.cn/how-to-compile-ffmpeg-x264-and-pjsip-on-ubuntu-14-04-for-voip/
http://www.linuxidc.com/Linux/2011-10/45738.htm
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
要在Ubuntu 20.04上使用PJSIP进行视频通话,您需要安装PJSIP库和相关依赖项,并编写一个简单的应用程序来处理视频通话。 以下是一些基本步骤: 1. 安装PJSIP库 您可以使用以下命令从Ubuntu存储库安装PJSIP库: ``` sudo apt-get update sudo apt-get install libpjproject-dev ``` 2. 安装视频编解码器 PJSIP需要视频编解码器才能处理视频。您可以使用以下命令来安装常用的视频编解码器: ``` sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev ``` 3. 编写PJSIP应用程序 您需要编写一个简单的PJSIP应用程序来处理视频通话。以下是一个基本的应用程序示例: ``` #include <pjlib.h> #include <pjmedia.h> #include <pjmedia-videodev.h> int main() { /* 初始化PJSIP库 */ pj_status_t status = pj_init(); /* 创建PJSIP库实例 */ pj_caching_pool cp; pj_pool_t *pool; pjmedia_endpt *med_endpt; pjmedia_vid_dev_index vid_dev_idx; pjmedia_vid_dev_info vid_dev_info; pjmedia_vid_dev_format vid_dev_fmt; pjmedia_vid_dev_cap vid_dev_cap; pjmedia_vid_dev *vid_dev; unsigned i, count; PJ_LOG(3,("pjmedia", "Starting video capture test...")); /* 初始化PJSIP库 */ status = pj_init(); /* 创建PJSIP库实例 */ pj_caching_pool_init(&cp, NULL, 0); pool = pj_pool_create(&cp.factory, "app", 4000, 4000, NULL); /* 创建媒体端点 */ status = pjmedia_endpt_create(&cp.factory, NULL, 1, &med_endpt); /* 获取可用的视频设备 */ status = pjmedia_vid_dev_index_enum(&count); for (i=0; i<count; ++i) { if (pjmedia_vid_dev_index_get_info(i, &vid_dev_info) == PJ_SUCCESS) { PJ_LOG(3,("pjmedia", "Video device %d: %s", i, vid_dev_info.name)); } } /* 选择视频设备 */ vid_dev_idx = 0; status = pjmedia_vid_dev_index_get_cap(vid_dev_idx, 0, &vid_dev_cap); status = pjmedia_vid_dev_open(&cp.factory, vid_dev_idx, &vid_dev); /* 设置视频格式 */ pjmedia_vid_dev_format_default(&vid_dev_fmt); vid_dev_fmt.det.vid.size.w = 320; vid_dev_fmt.det.vid.size.h = 240; status = pjmedia_vid_dev_set_format(vid_dev, &vid_dev_fmt); /* 开始视频捕捉 */ status = pjmedia_vid_dev_start(vid_dev); /* 停止视频捕捉 */ status = pjmedia_vid_dev_stop(vid_dev); /* 销毁视频设备 */ pjmedia_vid_dev_close(vid_dev); /* 销毁媒体端点 */ pjmedia_endpt_destroy(med_endpt); /* 销毁PJSIP库实例 */ pj_pool_release(pool); pj_caching_pool_destroy(&cp); pj_shutdown(); return 0; } ``` 上面的代码演示了如何使用PJSIP捕获视频。您需要编写更多的代码来处理视频流并进行视频通话。 4. 编译和运行应用程序 编译应用程序的命令如下: ``` gcc -o video_call video_call.c -lpjproject -lpjmedia -lpjmedia-videodev -lswscale -lavcodec -lavformat -lswresample ``` 运行应用程序的命令如下: ``` ./video_call ``` 以上是基本步骤,当然还需要根据您的具体需求进行更多的设置和编码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值