LIVE555简介及在Windows上通过VS2013编译操作步骤
LIVE555是使用開放標準協(xié)議(RTP/RTCP, RTSP, SIP)形成的一組用于多媒體流C++庫。這些庫支持的平臺包括Unix(包括Linux和Mac OS X)、Windows和QNX(以及其它符號POSIX的系統(tǒng))。這些庫已經(jīng)被用于實現(xiàn)的應(yīng)用例如LIVE555媒體服務(wù)器、LIVE555代理服務(wù)器(RTSP服務(wù)器應(yīng)用)以及vobStreamer(使用RTP/RTCP/RTSP傳輸DVD內(nèi)容)。這些庫還可用于流式傳輸,接收和處理MPEG,H.265,H.264,H.263+,DV或JPEG視頻以及多種音頻編解碼器。它們易于擴展以支持其它(音頻和/或視頻)編解碼器,還可用于構(gòu)建基本的RTSP或SIP客戶端和服務(wù)器,并用于向現(xiàn)有媒體播放器應(yīng)用程序添加流媒體支持,例如VLC和MPlayer。
LIVE555編譯完后會生成4個庫:
(1). UsageEnvironment庫:”UsageEnvironment”和”TaskScheduler”類用于調(diào)度延遲事件,為異步讀取事件分配處理程序以及輸出錯誤/警告消息。此外,”HashTable”類定義了通用哈希表的接口,供其余代碼使用。這些都是抽象基類,它們必須被子類化以用于實現(xiàn)。
(2). groupsock庫:此庫中的類封裝了網(wǎng)絡(luò)接口和套接字。特別是”Groupsock”類封裝了一個用于發(fā)送(和/或接收)多播數(shù)據(jù)報的套接字。
(3). liveMedia庫:此庫定義了一個類層次結(jié)構(gòu),基類是Medium,適用于各種流媒體類型和編解碼器。
(4). BasicUsageEnvironment庫:該庫定義了”UsageEnvironment”類的一個具體實現(xiàn)(即子類),用于簡單的控制臺應(yīng)用程序。使用select()循環(huán)處理讀取事件和延遲操作。
通過VS2013編譯生成x64庫步驟:
1. 從http://www.live555.com/liveMedia/public/ 下載最新的穩(wěn)定版live.2019.05.21.tar.gz并解壓縮;
2. 調(diào)整live目錄下的win32config文件,調(diào)整結(jié)果如下:
# 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目錄下,執(zhí)行:genWindowsMakefiles,結(jié)果如下圖所示:會在對應(yīng)的目錄下生成*.mak文件,如在BasicUsageEnvironment目錄下生成BasicUsageEnvironment.mak;
4. 寫一個批處理文件windows_x64_build.bat,文件內(nèi)容如下:
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目錄下,執(zhí)行:windows_x64_build.bat,結(jié)果如下圖所示:四個庫可以正常生成,不過testProgs和mediaServer目錄下的執(zhí)行文件總是有問題,報NMAKE : fatal error U1077: “-out:testMP3Streamer.exe”: 返回代碼”0x1”,還不知道原因,后面可以通過新建vs工程來生成這些執(zhí)行文件。
6. 以上生成的是release庫,將win32config文件中的NODEBUG=1注釋掉,然后將” COMPILE_OPTS”中的”/MT”調(diào)整為”/MTd”可以生成debug庫。
GitHub:?https://github.com/fengbingchun/OpenCV_Test?
總結(jié)
以上是生活随笔為你收集整理的LIVE555简介及在Windows上通过VS2013编译操作步骤的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows上通过VLC播放器搭建rt
- 下一篇: RapidJSON简介及使用