环境说明
本博客是使用windows VS2019编译live555最新版本的过程,最后编译成功,特记录一下,由于最新版本的live555使用了openssl库,因此对于一些新手来说,可能会花一些时间在编译上面,因此,本人希望刚刚入门的新同学不在环境上花费过多的时间上。live555版本选择的是2022.4.26的压缩包,如果不想学习这个编译过程,想直接学习项目,直接跳到最后,下载我编译好的源码即可。
编译过程
下载源码
源码地址,将源码解压保存。
创建解决方案
创建解决方案live555,并创建9个空的项目工程,项目工程名和live555的各个工程名保持一致,如下所示
其中WindowsAudioInputDevice,hlsPorxy,meidiaServer,proxyServer,testProgs为可选项目,但是通常mediaServer和testProgs一般是需要的,mediaServer是live555提供的媒体服务器程序,testProgs提供了大量的客户端测试程序(比如testRTSPClient),使用这2个项目就可以进行音视频文件的测试工作。
UsageEnvironment,BasicUsageEnvironment,groupsock,liveMedia是4个库文件,必不可少。供客户端和服务器端程序使用。
另外live555,依赖于openssl库,因此,需要将openssl包含在项目中,包含在我项目文件的thrid的openssl目录中。,项目目录如下
关于如何安装openssl,请自行参考其他文章,安装的openssl应该具有以下目录
其中include是openssl的头文件,win32和win64是32位和64位对应的lib和dll文件,由于我项目编译的时候选择的是Debug的64位,因此使用的openssl库是win64目录下的dll和lib文件。
将live555的文件依次拷贝到项目目录下, 比如BasicUsageEnvironment拷贝后的文件如下,其他项目类似,保持和live555项目的路径一致即可。
项目配置
UsageEnvironment
修改配置类型和输出目录
其中输出目录为lib的输出地方,可以根据自己的情况选择,但是mediaServer,testProgs等exe文件需要找到这个lib的位置
包含头文件
..\BasicUsageEnvironment\include;
..\groupsock\include;
..\liveMedia\include;
..\UsageEnvironment\include;
BasicUsageEnvironment
跟UsageEnvironment一样
groupsock
跟前面一样,另需要添加预处理定义
_CRT_SECURE_NO_WARNINGS
_WINSOCK_DEPRECATED_NO_WARNINGS
同时修改少量代码
打开GroupsockHelper.cpp,如果不修改,直接编译会报错,就知道哪里出了问题
window下,没有这2个头文件,这2个头文件是linux下,用于获取ip地址,不需要。
同时修改或者注释这段代码(不影响)
liveMedia
预处理定义添加
_CRT_NONSTDC_NO_DEPRECATE
_CRT_SECURE_NO_WARNINGS
_WINSOCK_DEPRECATED_NO_WARNINGS
头文件添加
..\BasicUsageEnvironment\include;
..\groupsock\include;
..\liveMedia\include;
..\thrid\openssl\include;
..\UsageEnvironment\include;
其他和前面一样
mediaServer
配置属性
这里配置类型不需要修改,为exe程序
头文件添加
..\BasicUsageEnvironment\include;
..\groupsock\include;
..\liveMedia\include;
..\thrid\openssl\include;
..\UsageEnvironment\include;
预处理定义添加
_CRT_NONSTDC_NO_DEPRECATE
_CRT_SECURE_NO_WARNINGS
_WINSOCK_DEPRECATED_NO_WARNINGS
链接属性
附加库目录
../thrid/openssl/win64;../Debug/
输入
libcrypto.lib
libssl.lib
ws2_32.lib
BasicUsageEnvironment.lib
groupsock.lib
liveMedia.lib
UsageEnvironment.lib
testProg等
同 mediaServer 配置一样
添加openssl动态库
将openssl目录下的动态库拷贝到Debug目录下,如下所示
错误情况
注意解决方案根据自己的情况选择,我这里编译的Debug X64,因此选择了openssl win64的库,如果想编译为x86,选择openssl 32位即可,同时要注意路径配置是否正确,我这里是选择的相对路径,相对路径一定要保证你的项目目录和我的一样,否则会出现找不到文件的情况。
百度网盘
链接:live555_2022.4.26
提取码:svss
在我这篇博客有2019.8.28日的live555的注释代码(不过注释的不正确,参考我百度网盘的说明):live555 RTSP服务器与客户端通信源码分析