控件公开的服务器会话接口铅RTSP水槽过滤器。看到使用RTSP接收器创建RTSP服务器主题,以获取如何使用此接口的总体概述。
此界面有助于ILMRTSPServerMedia接口为RTSP命令构建响应,并与ILMRTSPServerMedia接口流数据到RTSP客户端。
接口由铅RTSP水槽过滤器,当它在转换或捕获图中充当接收器时。
类型定义枚举
{
RTSPStream_Audio = 1,
RTSPStream_Video = 2,
RTSPStream_KLV = 0 x20
} LMRTSPStreamType;
方法返回的pStreamType参数的有效值GetStreamType方法。
类型 |
的名字 |
描述 |
长 |
超时 |
方法的不活动超时时间(以秒为单位)ILMRTSPServerMedia: OnNotification方法,使用RTSPServerSessionNotification_Timeout通知。 的ILMRTSPServerMedia接口通常在创建此服务器会话时设置此属性。 默认值是60(持续60秒)。 |
型 |
SessionID |
指定与此服务器会话相关联的会话ID。 的ILMRTSPServerMedia接口在创建此服务器会话时必须设置此属性(可能使用ILMRTSPServer: GenerateNewSessionID方法)。 类创建的所有服务器会话中该值应该是唯一的ILMRTSPServerMedia对象。 |
IUnknown * |
父 |
指定ILMRTSPServerMedia接口拥有此会话。 的ILMRTSPServerMedia接口在创建此服务器会话时必须设置此属性。 服务器会话使用这个值来知道哪个接口应该处理ILMRTSPServerMedia: OnNotification超时通知。 |
IUnknown * |
安全 |
指定此会话的安全设置。如果为NULL,则该媒体没有安全限制,也不使用任何身份验证。 的ILMRTSPServerMedia接口在创建此服务器会话时必须设置此属性。 默认值为NULL(不认证)。 注意,当您将Security属性设置为一个接口时,该属性将保留原始接口。因此,如果您对其进行更改(如添加/删除用户),则更改将反映在此会话的安全设置中。 |
VARIANT_BOOL |
输出 |
如果设置为VARIANT_TRUE,则RTP输出将被启用。如果设置为VARIANT_FALSE,则RTP输出将被禁用。在执行多个图操作时,这有助于在所有操作完成之前禁止任何RTP输出。 |
pServer |
指针ILMRTSPServer收到此命令的接口。 |
pCommandParser |
指针ILMRTSPCommandParser命令的接口。 |
pResponseBuilder |
指针ILMRTSPResponseBuilder将包含响应的接口。 |
套接字 |
指向接收命令的套接字对象的指针。将使用相同的套接字对象发送响应。 |
RTSP服务器将调用ILMRTSPServerMedia: HandleCommand方法,当它从客户端接收RTSP命令时。的ILMRTSPServerMedia接口将执行一些处理,然后调用服务器会话的handleccommand来协助进一步处理和准备响应。
看到ILMRTSPServerMedia: HandleCommand和使用RTSP接收器创建RTSP服务器主题以获取更多信息。
如果成功则S_OK,如果发生错误则< 0。
E_OUTOFMEMORY |
内存不足,无法处理此命令。 |
LTMM_E_BAD_COMMAND |
[0x80050043] RTSP命令不被识别或不支持。 |
LTMM_E_SESSION_NOT_FOUND |
未设置SessionID属性 |
VFW_E_INVALID_MEDIA_TYPE |
[0x80040248]源流的任何媒体类型都不支持RTSP水槽过滤器. |
URL |
包含应检索其流类型的曲目ID的字符串。 |
pStreamType |
指向应该用流类型填充的变量的指针。 |
在解析RTSP设置命令以查找流类型(RTSPStream_Audio或RTSPStream_Video)时使用此方法。
的ILMRTSPServerMedia接口通常会在接收到RTSP设置命令时调用此方法,以了解渲染视频或音频流的流。
description命令的响应通常包含如下信息:
[…—其他数据被忽略了
m=视频0 RTP/AVP
96 H264/90000 = rtpmap:
一个=控制:trackID = 0
96 = fmtp: packetization-mode = 1;概要级别= 874020;aO4NyAA sprop-parameter-sets = Z00AHpcgFoe2AiAAAH0gAB1MEIA =, = = =
m=音频0 RTP/AVP
一个= rtpmap: 97 mpeg4-generic / 48000/2
一个=控制:trackID = 1
97 = fmtp: streamType = 2;模式= AAC-LC;配置= 1190
这说明“trackID=0”标识的是H264压缩的视频流,“trackID=1”标识的是AAC压缩的音频流。
RTSP客户端可能会响应一个SETUP命令,如下所示:
设置rtsp: / / 192.168.0.185 / dvd.mpg trackID rtsp / 1.0 = 0
[…其他数据被忽略了
在这种情况下,ILMRTSPServerMedia接口必须从SETUP命令“rtsp://192.168.0.185/dvd. zip”中收到的URL中确定。mpg/trackID=0”表示RTSP客户端希望对视频流进行流处理(因为'trackID=0'表示在description命令中使用H264压缩的视频)。的ILMRTSPServerMedia接口可以通过解析原始的description命令来确定这是视频流,或者它可以调用ILMRTSPServerSession接口的GetStreamType方法。该LEADTOOLS多媒体的188宝金博怎么下载实现ILMRTSPServerMedia接口调用GetStreamType来确定流类型。
一旦确定了流类型,则ILMRTSPServerMedia接口将随后呈现适当的视频或音频流。
如果成功则S_OK,如果发生错误则< 0。
E_INVALIDARG |
URL不包含正确的曲目ID或格式不正确。 |
E_POINTER |
pStreamType参数无效(NULL)。 |
使用此选项可关闭所有连接并停止发送数据。
的ILMRTSPServerMedia接口通常会在需要铅RTSP水槽过滤器以停止发送数据。可能的原因是:
日志含义收到description命令
服务器正在关闭
正在从服务器中删除服务器介质。
S_OK(此方法目前不返回任何错误代码)
pServer |
指针ILMRTSPServer收到此命令的接口。 |
pCommandParser |
指针ILMRTSPCommandParser命令的接口。 |
pResponseBuilder |
指针ILMRTSPResponseBuilder将包含响应的接口。 |
套接字 |
指向接收命令的套接字对象的指针。将使用相同的套接字对象发送响应。 |
RTSP服务器将调用ILMRTSPServerMedia: HandleCommand方法,当它从客户端接收RTSP命令时。的ILMRTSPServerMedia接口将执行一些处理,然后调用服务器会话的handleccommand来协助进一步处理和准备响应。如果需要验证客户端的安全凭证,在执行任何处理之前,用户可以调用handlesecsecurity。
看到ILMRTSPServerMedia: HandleCommand和使用RTSP接收器创建RTSP服务器有关更多信息的主题。
如果成功则S_OK,如果发生错误则< 0。
LTMM_E_AUTHENTICATION_REQUIRED |
[0x8005004A]需要认证。 |