公司准备做一套语音对讲,类似于集群通信的对讲系统,但只是软交换的,并且后续要跟集群对讲关联起来。
做了技术研究,发现使用组播是比较好的,但是互联网下不是允许组播通信的,会引起数据风暴。
最后觉着可能只能通过P2P通信了,关于P2P通信,网上的资料也比较多,但大多基于sip的比较多,开源的更多,sip概念本文不讨论了。sip的厂家也比较多,使用哪家的源码,也众说纷纭,有linphone,reSip,PJSip等,最后我选定的PJSip,不用不知道,PJSip的编译真是够操蛋的,好多类库都不知道去哪里下载,幸好我能翻墙,一步步的走下去。本文介绍window的源码编译,时间关系只记个大概。
1、源码的下载,去官网下载即可。
2、准备相应的visual studio 版本,我准备的vs2015,这个安装可真够大的,10几G出去,比较头疼。
3、准备类库,包括DiretX SDK,SDL2及FFMEG
sdl下载页面:https://www.libsdl.org/download-2.0.php
FFMPEG下载页面:https://ffmpeg.zeranoe.com/builds/
sdl下载的lib如果是静态的,那最好,若不是,需要lib与dll匹配。
4、opehH264,该类库需要自己编译
4.1下载mingw
从官网下载 MinGW 并安装到 C:\MinGW;
运行 MinGW Installation Manager,安装 mingw32-base, mingw32-gcc-g++, msys-base 这几个包;
4.2下载nasm
从官网下载 win32 版本的 nasm,并把解压后的 nasm.exe 文件拷贝到 C:\MinGW\bin 目录下;
4.3下载openH264源码
从官网下载 OpenH264 源码,并解压到 D:\openh264
4.3编译 OpenH264
运行 :\MinGW\msys\1.0\msys.bat ;
在命令行中,执行以下命令
cd /D/openh264 make ARCH=i386 OS=msvc |
4.4OPENH264生成文件
生成的文件位于 D:\openh264 目录下,共计7个静态库,1个动态库,2个可执行文件
common.lib
console_common.lib
decoder.lib
encoder.lib
openh264.lib
processing.lib
openh264_dll.lib
openh264.dll
h264dec.exe
h264enc.exe
5、所有的类库以及include文件都配置在vs2015的vc++目录选项下的include下和lib下,执行编译,基本可以成功。