admin 管理员组文章数量: 887609
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_CODEC 1 //by default VP8 codec is enabled
//#define PJMEDIA_HAS_VPX_CODEC_VP9 1 //enable VP9 codec
2. 我使用vs2019编译,需要把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 ,实测不回复也会开启视频传输
看下视频效果
发起方:
接听方:
本地测试,还可以,感觉略微有延迟。
版权声明:本文标题:Windows环境下编译pjsip 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1726194704h913747.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论