Live555 Live555Server And playCommon (RTSPClient)

来源:互联网 发布:java主流技术构架 编辑:程序博客网 时间:2024/05/16 01:37

近几天在研究 Live555 并使用 testProgs 中的 Server 及 playCommon,分别生成 Live555Server.exe 及 playCommon.exe,它们的功能分别是生成建立 RTSP 服务器和接收并保存服务器中的流文件。


博主: http://my.csdn.net/keith_cheung

源码: http://www.live555.com/liveMedia/


(备注:Live555 Version 0.83, released Jul 18, 2014,     Visual Studio 2012 )


但在二者编译前,我分别先生成了以下四个库,以供后面使用:

参考Live555编译实现过程(我按最后一种方案) : http://blog.csdn.net/ying66feng/article/details/19477731


1. BasicUsageEnvironment.lib

2. groupsock.lib

3. liveMedia.lib

4. UsageEnvironment.lib


另外,


A. 头文件一般要包含,请自行按自己工程目录进行设定或调整:

( 属性 -> 配置属性 -> C/C++ -> 常规 ->附加包含目录 )

$(SolutionDir)\BasicUsageEnvironment\include
$(SolutionDir)\groupsock\include
$(SolutionDir)\liveMedia\include
$(SolutionDir)\UsageEnvironment\include


B. 库引用路径 :

(属性 -> 配置属性 -> 链接器 -> 常规 -> 附加库目录)

$(SolutionDir)\Live555\Release

$(SolutionDir)\Live555\Debug


Cpp 或 头文件 中,需加入库引用:

#pragma comment (lib, "Ws2_32.lib")
#pragma comment (lib, "BasicUsageEnvironment.lib")
#pragma comment (lib, "groupsock.lib")
#pragma comment (lib, "liveMedia.lib")
#pragma comment (lib, "UsageEnvironment.lib")


一,Live555Server.exe 的生成


A. 新建C++空项目,并分别在源文件和头文件中加入

1. DynamicRTSPServer.cpp

2. DynamicRTSPServer.hh

3. Live555Server.cpp


B. 复制上述四个库及相关源码到工程中,并按上面 附加好头文件及库文件。


C. 属性->配置->C/C++ -> 命令行中,加上  /D _CRT_SECURE_NO_WARNINGS


D. 编译即可。


二,playCommon.exe 的生成


A. 新建C++空项目,并分别在源文件和头文件中加入

1. openRTSP.cpp

2. playCommon.hh

3. playCommon.cpp


B. 复制上述四个库及相关源码到工程中,并按上面 附加好头文件及库文件。


C. 属性->配置->C/C++ -> 命令行中,加上  /D _CRT_SECURE_NO_WARNINGS


D. 编译即可。


三,服务器及传送测试


A. Live555Server.exe 可以支持 H.264, H.265(HEVC), KMV 等通用格式,请将 此类文件与 Live555Server.exe 放在同一目录下,运行 Live555Server.exe 即可。


B. 而接收:playCommon.exe rtsp://192.168.1.131/test.265 (假如你运行 服务器的 IP : 192.168.1.131 ,而文件名是 : test.265)


C. playCommon.exe 目录下,将会收到生成一个: video-H265-1 文件,这样,你就可以直接播放它了。


四,注意事项目


因为现在的 H.265 fileSinkBufferSize = 100000,对于一些大帧来说,这个 buff 不够大,我现在需要将它设成 160000 或更大的。

我现在改动了以下地方( 从100000 -> 160000 ):


A. Live555 四个库:

H265VideoFileSink.hh 的 unsigned bufferSize =160000,


B1 . playCommon.exe :

playCommon.cpp  的 unsigned fileSinkBufferSize =160000;//100000


B2. Live555Server.exe :

DynamicRTSPServer.cpp 的 OutPacketBuffer::maxSize =160000; // allow for some possibly large H.265 frames




0 0