LIVE555简介及在Windows上通过VS2013编译操作步骤
LIVE555是使用開放標準協議(RTP/RTCP, RTSP, SIP)形成的一組用于多媒體流C++庫。這些庫支持的平臺包括Unix(包括Linux和Mac OS X)、Windows和QNX(以及其它符號POSIX的系統)。這些庫已經被用于實現的應用例如LIVE555媒體服務器、LIVE555代理服務器(RTSP服務器應用)以及vobStreamer(使用RTP/RTCP/RTSP傳輸DVD內容)。這些庫還可用于流式傳輸,接收和處理MPEG,H.265,H.264,H.263+,DV或JPEG視頻以及多種音頻編解碼器。它們易于擴展以支持其它(音頻和/或視頻)編解碼器,還可用于構建基本的RTSP或SIP客戶端和服務器,并用于向現有媒體播放器應用程序添加流媒體支持,例如VLC和MPlayer。
LIVE555編譯完后會生成4個庫:
(1). UsageEnvironment庫:”UsageEnvironment”和”TaskScheduler”類用于調度延遲事件,為異步讀取事件分配處理程序以及輸出錯誤/警告消息。此外,”HashTable”類定義了通用哈希表的接口,供其余代碼使用。這些都是抽象基類,它們必須被子類化以用于實現。
(2). groupsock庫:此庫中的類封裝了網絡接口和套接字。特別是”Groupsock”類封裝了一個用于發送(和/或接收)多播數據報的套接字。
(3). liveMedia庫:此庫定義了一個類層次結構,基類是Medium,適用于各種流媒體類型和編解碼器。
(4). BasicUsageEnvironment庫:該庫定義了”UsageEnvironment”類的一個具體實現(即子類),用于簡單的控制臺應用程序。使用select()循環處理讀取事件和延遲操作。
通過VS2013編譯生成x64庫步驟:
1. 從http://www.live555.com/liveMedia/public/ 下載最新的穩定版live.2019.05.21.tar.gz并解壓縮;
2. 調整live目錄下的win32config文件,調整結果如下:
# Comment out the following line to produce Makefiles that generate debuggable code:
NODEBUG=1# The following definition ensures that we are properly matching
# the WinSock2 library file with the correct header files.
# (will link with "ws2_32.lib" and include "winsock2.h" & "Ws2tcpip.h")
TARGETOS = WINNT# If for some reason you wish to use WinSock1 instead, uncomment the
# following two definitions.
# (will link with "wsock32.lib" and include "winsock.h")
#TARGETOS = WIN95
#APPVER = 4.0#!include    <ntwin32.mak>UI_OPTS =		$(guilflags) $(guilibsdll)
# Use the following to get a console (e.g., for debugging):
CONSOLE_UI_OPTS =		$(conlflags) $(conlibsdll)
#CPU=i386
CPU=amd64#TOOLS32	=		c:\Program Files\DevStudio\Vc
TOOLS32	=		C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC
#COMPILE_OPTS =		$(INCLUDES) $(cdebug) $(cflags) $(cvarsdll) -I. -I"$(TOOLS32)\include"
COMPILE_OPTS =      $(INCLUDES) $(cdebug) $(cflags) $(cvarsdll) -I. /EHsc /O2 /MT /GS /D "WIN64" /Oy- /Oi /D "NDEBUG" -I"$(TOOLS32)\include"
C =			c
#C_COMPILER =		"$(TOOLS32)\bin\cl"
C_COMPILER =		"$(TOOLS32)\bin\amd64\cl"
C_FLAGS =		$(COMPILE_OPTS)
CPP =			cpp
CPLUSPLUS_COMPILER =	$(C_COMPILER)
CPLUSPLUS_FLAGS =	$(COMPILE_OPTS)
OBJ =			obj
LINK =			$(link) -out:
LIBRARY_LINK =		lib -out:
#LINK_OPTS_0 =		$(linkdebug) msvcirt.lib
LINK_OPTS_0 =       $(linkdebug) ws2_32.lib /NXCOMPAT
LIBRARY_LINK_OPTS =	
LINK_OPTS =		$(LINK_OPTS_0) $(UI_OPTS)
CONSOLE_LINK_OPTS =	$(LINK_OPTS_0) $(CONSOLE_UI_OPTS)
#SERVICE_LINK_OPTS =     kernel32.lib advapi32.lib shell32.lib -subsystem:console,$(APPVER)
SERVICE_LINK_OPTS =     kernel32.lib advapi32.lib shell32.lib ws2_32.lib -subsystem:console,$(APPVER)
LIB_SUFFIX =		lib
LIBS_FOR_CONSOLE_APPLICATION =
LIBS_FOR_GUI_APPLICATION =
MULTIMEDIA_LIBS =	winmm.lib
EXE =			.exe
PLATFORM = Windows#rc32 = "$(TOOLS32)\bin\rc"
rc32 = rc.exe
.rc.res:$(rc32) $<
 
3. 打開cmd.exe,并將其定位到live目錄下,執行:genWindowsMakefiles,結果如下圖所示:會在對應的目錄下生成*.mak文件,如在BasicUsageEnvironment目錄下生成BasicUsageEnvironment.mak;
4. 寫一個批處理文件windows_x64_build.bat,文件內容如下:
cd e:\live\liveMedia
nmake -f liveMedia.mak
cd ..\groupsock
nmake -f groupsock.mak
cd ..\UsageEnvironment
nmake -f UsageEnvironment.mak
cd ..\BasicUsageEnvironment
nmake -f BasicUsageEnvironment.mak
cd ..\testProgs
nmake -f testProgs.mak
cd ..\mediaServer
nmake -f mediaServer.mak 
5. 在C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\Shortcuts目錄下雙擊打開” VS2013 x64 本機工具命令提示”,將其定位到E:\live目錄下,執行:windows_x64_build.bat,結果如下圖所示:四個庫可以正常生成,不過testProgs和mediaServer目錄下的執行文件總是有問題,報NMAKE : fatal error U1077: “-out:testMP3Streamer.exe”: 返回代碼”0x1”,還不知道原因,后面可以通過新建vs工程來生成這些執行文件。
6. 以上生成的是release庫,將win32config文件中的NODEBUG=1注釋掉,然后將” COMPILE_OPTS”中的”/MT”調整為”/MTd”可以生成debug庫。
GitHub:?https://github.com/fengbingchun/OpenCV_Test?
總結
以上是生活随笔為你收集整理的LIVE555简介及在Windows上通过VS2013编译操作步骤的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: Windows上通过VLC播放器搭建rt
 - 下一篇: RapidJSON简介及使用