900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > Windows环境下编译pjsip

Windows环境下编译pjsip

时间:2023-07-29 08:20:40

相关推荐

Windows环境下编译pjsip

pjsip大体上是什么,更多内容可以参考pjsip背景组成等。项目需求在 Windows上部署运行,并开发客户端,客户端打算用MicroSip改造。MicroSip依赖pjsip。

首先编译pjsip 2-11-1。依赖ffmpeg和sdl2,好多案例openh264不是必须的,但是我调用本地摄像头需要依赖openh264, windows 版本需要单独编译,我会单独说一下。

下载pjsip源码

Download PJSIP - Open Source SIP, Media, and NAT Traversal library

源码主要结构:

lib: [PJPROJECT的lib库]

pjlib:[基础框架库]

pjlib-util:[辅助工具库]

pjmedia:[开源的媒体栈]

pjnath:[开源的NAT-T辅助库]

pjsip:[开源的SIP协议栈]

pjsip-apps[demo]

下载ffmpeg, 下载windows版本

Download FFmpeg

下载sdl2

Simple DirectMedia Layer - SDL version 2.0.18 (stable)

编译方法,官方其实写的非常详细了,下面列了支持的平台

Windows 平台编译教程如下Getting-Started/Windows – pjsip Open source SIP, media, and NAT traversal stacks/libraries for smartphones。具体就不展开了,直接列出需要修改的部分,需要修改的内容不仅限于如下的部分(其实就是指定库目录和包含目录,谁需要就给谁配一下)

进入指定目录../pjlib/include/pj/,创建config_site.h即可(VS必须手动创建),这个文件可以为空,为空是使用默认值。干脆把config_site_simple.h复制一份重命名为config_site.h

参考配置

/*支持视频的参数*/

#define PJMEDIA_HAS_VIDEO 1

#define PJMEDIA_HAS_OPENH264_CODEC 1

#define PJMEDIA_HAS_LIBYUV 1

#define PJMEDIA_VIDEO_DEV_HAS_SDL 1

#define PJMEDIA_VIDEO_DEV_HAS_DSHOW 1

/*ffmpeg 支持*/

#define PJMEDIA_HAS_FFMPEG 1

/*如果希望调用摄像头信息,除了默认支持VP8,还需要支持H264,这个也是网上好多其他教程部分情况无法调用摄像头的原因*/

#define PJMEDIA_HAS_OPENH264_CODEC 1

//#define PJMEDIA_HAS_VPX_CODEC1 //by default VP8 codec is enabled

//#define PJMEDIA_HAS_VPX_CODEC_VP9 1 //enable VP9 codec

2. 我使用vs编译,需要把Windows SDK和平台工具集统一

3. 引入sdl2 和 ffmpeg

参考:

完成上述配置,实际编译过程依然会报错,错误信息基本是pjsystest 、pjsip_test等项目找不到依赖的静态库,其实这些项目和pjsip本身没多大关系,是一些辅助的项目,分别单独设置一下就可以了,或者从当前解决方案内移除就可以啦。不影响项目运行。编译成功,可以运行pjsip-apps/bin/下的exe,效果如下 测试打电话和发视频

主叫端:

被叫需要回复a, 以及回传一个,进行应答

可以看到Media 的信息包括:

只有语音没有视频:1 audio & 0 video

来自: from<sip:192.168.1.23>

打给:to<sip:192.168.1.111>

需要按a 接听,按h 拒绝接听

接听后需要回复一个100-600之间的任意整数。

然后就可以畅快通话了。

打视频电话

需要先设置启用视频信息,双方都需要设置

vid enable ; 打开视频

vid acc autotx on ; 即使打开了视频,默认视频也不会自动开始传输。要修改该设置

vid acc autorx on ; 即使接收到了视频,默认也不会播放,要修改该设置

接听方接听后,需要回复

vid call tx on 1 //打开视频发送

这时候就可以看到视频了

重新打电话

接听放协商回复

这时候看到Media: 1 audio & 1 video,实测不回复也会开启视频传输

看下视频效果

发起方:

接听方:

本地测试,还可以,感觉略微有延迟。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。