精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
在streamingserver.xml文件中有几个服务器预置项,用来使服务器产生调试信息,并打印在终端屏幕上。下面部分将提供一些关于调试的信息:
这个部分包含如下内容:
RTSP和RTP的调试
源代码文件的调试支持
如果要让RTSP和RTP信息显示在终端屏幕上,可以修改streamingserver.xml文件中的RTSP_debug_printfs预置项,然后重新启动服务器:
<PREF NAME=”RTSP_debug_printfs” TYPE=”BOOL16” >true</PREF> |
如果要显示报头信息,请修改streamingserver.xml 文件中的“enable_packet_header_printfs”预置项:
<PREF NAME=”enable_packet_header_printfs” TYPE=”BOOL16” >true</PREF> |
然后通过修改“packet_header_printf_options”预置项的值来指定希望显示的报头。下面的设定实例显示所有的报头信息:
<PREF NAME=”packet_header_printf_options” >rtp;rr;sr;app;ack;</PREF> |
在前面的例子中,rtp激活了RTP报头的显示,rr激活了RTCP接收方报告的显示,sr激活了RTCP s发送方报告的显示,app激活了RTCP应用数据包的显示,ack激活了Reliable UDP RTP认可数据包的显示。
在激活RTSP和RTP调试信息的输出后,通过下面的命令可以以调试模式重新启动流媒体服务器:
QuickTimeStreamingServer -d |
当您连接一个客户端的时候,调试信息就会显示在终端的屏幕上了。
您还可以激活某个特定源文件中的调试信息。举例来说,在CommonUtilitiesLib/Task.h头文件中做如下修改:
#define TASK_DEBUG 1 |
重新连编并以调试模式启动流媒体服务器:
QuickTimeStreamingServer -d |
下面是一些输出实例:
Task::Signal enque task TaskName=RTSPSession ... TaskThread::Entry run task TaskName=RTSPSession ... TaskThread::Entry insert task TaskName=RTSPSession ... TaskThread::Entry run task TaskName=RTSPSession ... TaskThread::WaitForTask found timer task TaskName=QTSSAccessLog ... TaskThread::Entry run task TaskName=QTSSAccessLog ... |
您也可以激活CommonUtilitiesLib/OSFileSource.cpp文件中的调试输出:
#define FILE_SOURCE_DEBUG 1 |
下面是一些输出的实例:
OSFileSource::SetLog=/Library/QuickTimeStreaming/Movies/sample_100kbit.mov FileMap::AllocateBufferMap shared buffers OSFileSource::ReadFromCache inPosition =272 ... OSFileSource::ReadFromCache inPosition =276 ... OSFileSource::ReadFromCache inPosition =280 ... ... OSFileSource::ReadFromCache inPosition =80667 |