是否可在Windows平台下编译带opus codec的pjsip (pjsua2)为dll文件
Windows环境编译集成opus codec的pjsip DLL方案
完全可以实现,你之前编译的pjsua2.dll未支持opus,是因为编译阶段没有开启opus的编译开关并关联opus依赖库,按以下步骤操作即可生成集成opus的pjsip DLL文件:
1. 前置准备
- 提前编译好对应架构(x86/x64)、对应VS版本、运行时库参数(/MD/MT需和后续pjsip编译参数完全一致)的opus静态库
opus.lib及对应头文件 - 下载pjsip官方源码,解压到本地工作目录
2. 修改pjsip编译配置
- 在pjsip源码路径
pjlib/include/pj/下新建config_site.h文件,写入以下配置:
#define PJMEDIA_HAS_OPUS_CODEC 1
#define PJMEDIA_OPUS_PLC 1
- 打开pjsip对应版本的VS解决方案,找到pjsua2项目,右键打开属性页:
- 「VC++目录」→「包含目录」:添加opus头文件所在的文件夹路径
- 「VC++目录」→「库目录」:添加
opus.lib所在的文件夹路径 - 「链接器」→「输入」→「附加依赖项」:新增
opus.lib
- 确认pjsua2项目的运行时库配置和opus库的运行时库配置完全一致,避免链接报错
3. 编译生成集成opus的DLL
- 选择对应的目标架构和编译版本(Release/Debug),右键pjsua2项目选择「生成」
- 编译完成后输出的
pjsua2.dll已经内置opus codec支持
4. 功能验证
你可以在调用pjsua2的业务代码中,调用Endpoint::codecEnum()方法枚举所有支持的音频编解码器,确认opus已经出现在列表中,也可以通过Endpoint::codecSetPriority()方法将opus设置为最高优先级的音频编解码器。
内容的提问来源于stack exchange,提问作者Khaled Janky
相关产品推荐
相关产品推荐

