LIVE555简介及在Windows上通过VS2013编译操作步骤

    xiaoxiao2023-11-21  161

    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 

    最新回复(0)