Live555 Live555Server And playCommon (RTSPClient)

近幾天在研究 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




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章