1.下载
2.修改win32config文件
删除或注释此行
!include <ntwin32.mak>
修改TOOLS32,指向你的VC安装目录
TOOLS32 = C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC
修改LINK这行
LINK = link /OUT:
修改LINK_OPTS_0这行
LINK_OPTS_0 = $(linkdebug) Ws2_32.lib
修改rc32这行,到你WDK的rc.exe所在
rc32 = "C:\Program Files (x86)\Windows Kits\8.1\bin\x86\rc"
默认编译结果是MT的,如果希望以MD形式编译,需要在COMPILE_OPTS 后追加 /MD
COMPILE_OPTS = $(INCLUDES) $(cdebug) $(cflags) $(cvarsdll) -I. -I"$(TOOLS32)\include" /MD
3.以“VS2013 x86 本机工具命令提示”形式开启命令行
genWindowsMakefiles.cmd
cd liveMedia
nmake /B -f liveMedia.mak
cd ../groupsock
nmake /B -f groupsock.mak
cd ../UsageEnvironment
nmake /B -f UsageEnvironment.mak
cd ../BasicUsageEnvironment
nmake /B -f BasicUsageEnvironment.mak
cd ../testProgs
nmake /B -f testProgs.mak
cd ../mediaServer
nmake /B -f mediaServer.mak
4.关于live555 RTSPClient的注意点
相关DEMO官方的例子应该很不错了。
试用了RTSP over TCP的形式,发现在MediaSink 的回调中,不是按RTP包回调,而是按NAL回调,即RTP Sequence是不连续的;
测试环境的编码模式是SingleNAL,以I帧为例,得到回调三次,分别是SPS PPS 主NAL。
即每次回调后,在头上追加H264 NAL头 00 00 00 01,再根据Marker位进行分帧即可。
static const char nalHead[4] = { 0x00,0x00,0x00,0x01 };
memcpy(m_pFrameBuffer + m_nFrameAlign, nalHead, 4);
m_nFrameAlign += 4;
memcpy(m_pFrameBuffer + m_nFrameAlign, m_pRecvBuffer, nalSize);
m_nFrameAlign += nalSize;
if(rtpSource->curPacketMarkerBit())
{
m_pParser->AddStream(m_pFrameBuffer, m_nFrameAlign);
m_pFrameBuffer = new char[4096 * 1024];
m_nFrameAlign = 0;
}